FBATC
15813899064

跨境电商物流专线:海运 空运 铁路 快递 卡车 双清包税派送到门

美国尾程运费计算器:输入邮编实时比价

gjwl6662025-10-31 08:31:172

美国尾程运费计算器设计方案

根据需求,我设计了一个专业的美国尾程运费计算器,采用蓝色作为主色调以传达信任和专业感,配合现代化的UI设计和流畅的交互体验,计算器允许用户输入邮编、包裹信息并实时获取多家物流商的运费比较结果。

下面是完整的实现代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">US Shipping Rate Calculator | Real-time Comparison</title>
  <script src="https://cdn.tailwindcss.com"></script>
  <link href="https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css" rel="stylesheet">
  <script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.8/dist/chart.umd.min.js"></script>
  <!-- Tailwind Configuration -->
  <script>
    tailwind.config = {
      theme: {
        extend: {
          colors: {
            primary: '#1e40af', // Deep blue for trust and professionalism
            secondary: '#3b82f6', // Medium blue for accents
            accent: '#60a5fa', // Light blue for highlights
            neutral: '#f3f4f6', // Light gray for backgrounds
            dark: '#1f2937', // Dark gray for text
          },
          fontFamily: {
            inter: ['Inter', 'sans-serif'],
          },
        },
      }
    }
  </script>
  <style type="text/tailwindcss">
    @layer utilities {
      .content-auto {
        content-visibility: auto;
      }
      .card-shadow {
        box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
      }
      .input-focus {
        @apply focus:ring-2 focus:ring-primary/50 focus:border-primary focus:outline-none;
      }
      .btn-hover {
        @apply hover:shadow-lg hover:-translate-y-0.5 transition-all duration-300;
      }
      .animate-fade-in {
        animation: fadeIn 0.5s ease-in-out;
      }
      .animate-slide-up {
        animation: slideUp 0.5s ease-out;
      }
    }
    @keyframes fadeIn {
      from { opacity: 0; }
      to { opacity: 1; }
    }
    @keyframes slideUp {
      from { transform: translateY(20px); opacity: 0; }
      to { transform: translateY(0); opacity: 1; }
    }
  </style>
  <!-- Google Fonts -->
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
</head>
<body class="font-inter bg-gray-50 text-dark min-h-screen flex flex-col">
  <!-- Header -->
  <header class="bg-white shadow-sm sticky top-0 z-50 transition-all duration-300" id="header">
    <div class="container mx-auto px-4 py-4 flex justify-between items-center">
      <div class="flex items-center space-x-2">
        <i class="fa fa-truck text-primary text-2xl"></i>
        <h1 class="text-xl md:text-2xl font-bold text-primary">ShipRate <span class="text-secondary">Pro</span></h1>
      </div>
      <nav class="hidden md:flex items-center space-x-6">
        <a href="#" class="font-medium text-primary hover:text-secondary transition-colors">Home</a>
        <a href="#" class="font-medium text-gray-600 hover:text-primary transition-colors">How It Works</a>
        <a href="#" class="font-medium text-gray-600 hover:text-primary transition-colors">Services</a>
        <a href="#" class="font-medium text-gray-600 hover:text-primary transition-colors">Contact</a>
      </nav>
      <div class="flex items-center space-x-3">
        <button class="hidden md:block px-4 py-2 rounded-lg border border-primary text-primary font-medium hover:bg-primary/5 transition-colors">
          Sign In
        </button>
        <button class="px-4 py-2 rounded-lg bg-primary text-white font-medium btn-hover">
          Get Started
        </button>
        <button class="md:hidden text-gray-600 text-xl">
          <i class="fa fa-bars"></i>
        </button>
      </div>
    </div>
  </header>
  <!-- Main Content -->
  <main class="flex-grow container mx-auto px-4 py-8 md:py-12">
    <!-- Hero Section -->
    <section class="mb-12 animate-fade-in">
      <div class="max-w-3xl mx-auto text-center">
        <h2 class="text-[clamp(1.8rem,4vw,2.8rem)] font-bold text-dark mb-4 leading-tight">
          US Shipping Rate Calculator
        </h2>
        <p class="text-lg text-gray-600 mb-8">
          Compare real-time shipping rates from top carriers by entering your zip code and package details
        </p>
        <div class="flex flex-wrap justify-center gap-4 mb-6">
          <div class="flex items-center space-x-2 bg-white px-4 py-2 rounded-full shadow-sm">
            <i class="fa fa-check-circle text-green-500"></i>
            <span>Instant Quotes</span>
          </div>
          <div class="flex items-center space-x-2 bg-white px-4 py-2 rounded-full shadow-sm">
            <i class="fa fa-check-circle text-green-500"></i>
            <span>Multiple Carriers</span>
          </div>
          <div class="flex items-center space-x-2 bg-white px-4 py-2 rounded-full shadow-sm">
            <i class="fa fa-check-circle text-green-500"></i>
            <span>No Signup Required</span>
          </div>
        </div>
      </div>
    </section>
    <!-- Calculator Form -->
    <section class="max-w-4xl mx-auto mb-12 animate-slide-up">
      <div class="bg-white rounded-2xl shadow-xl overflow-hidden">
        <div class="bg-gradient-to-r from-primary to-secondary text-white p-6 md:p-8">
          <h3 class="text-xl md:text-2xl font-bold mb-2">Shipping Information</h3>
          <p class="opacity-90">Enter your details to get instant shipping quotes</p>
        </div>
        <form id="shippingForm" class="p-6 md:p-8 space-y-6">
          <div class="grid grid-cols-1 md:grid-cols-2 gap-6">
            <!-- Origin ZIP -->
            <div class="space-y-2">
              <label for="originZip" class="block text-sm font-medium text-gray-700">Origin ZIP Code</label>
              <div class="relative">
                <span class="absolute inset-y-0 left-0 flex items-center pl-3 text-gray-500">
                  <i class="fa fa-map-marker"></i>
                </span>
                <input 
                  type="text" 
                  id="originZip" 
                  name="originZip" 
                  placeholder="e.g. 90210" 
                  class="w-full pl-10 pr-4 py-3 border border-gray-300 rounded-lg input-focus"
                  required
                >
              </div>
            </div>
            <!-- Destination ZIP -->
            <div class="space-y-2">
              <label for="destZip" class="block text-sm font-medium text-gray-700">Destination ZIP Code</label>
              <div class="relative">
                <span class="absolute inset-y-0 left-0 flex items-center pl-3 text-gray-500">
                  <i class="fa fa-flag"></i>
                </span>
                <input 
                  type="text" 
                  id="destZip" 
                  name="destZip" 
                  placeholder="e.g. 10001" 
                  class="w-full pl-10 pr-4 py-3 border border-gray-300 rounded-lg input-focus"
                  required
                >
              </div>
            </div>
            <!-- Weight -->
            <div class="space-y-2">
              <label for="weight" class="block text-sm font-medium text-gray-700">Package Weight (lbs)</label>
              <div class="relative">
                <span class="absolute inset-y-0 left-0 flex items-center pl-3 text-gray-500">
                  <i class="fa fa-balance-scale"></i>
                </span>
                <input 
                  type="number" 
                  id="weight" 
                  name="weight" 
                  min="0.1" 
                  step="0.1" 
                  placeholder="e.g. 5.5" 
                  class="w-full pl-10 pr-4 py-3 border border-gray-300 rounded-lg input-focus"
                  required
                >
              </div>
            </div>
            <!-- Package Type -->
            <div class="space-y-2">
              <label for="packageType" class="block text-sm font-medium text-gray-700">Package Type</label>
              <div class="relative">
                <span class="absolute inset-y-0 left-0 flex items-center pl-3 text-gray-500">
                  <i class="fa fa-box"></i>
                </span>
                <select 
                  id="packageType" 
                  name="packageType" 
                  class="w-full pl-10 pr-4 py-3 border border-gray-300 rounded-lg input-focus appearance-none bg-white"
                >
                  <option value="small">Small Package</option>
                  <option value="medium">Medium Box</option>
                  <option value="large">Large Box</option>
                  <option value="envelope">Envelope</option>
                  <option value="irregular">Irregular Shape</option>
                </select>
                <span class="absolute inset-y-0 right-0 flex items-center pr-3 text-gray-500 pointer-events-none">
                  <i class="fa fa-chevron-down"></i>
                </span>
              </div>
            </div>
          </div>
          <!-- Dimensions (Conditional) -->
          <div id="dimensionsGroup" class="space-y-2 animate-fade-in">
            <label class="block text-sm font-medium text-gray-700">Package Dimensions (inches)</label>
            <div class="grid grid-cols-1 sm:grid-cols-3 gap-4">
              <div class="relative">
                <span class="absolute inset-y-0 left-0 flex items-center pl-3 text-gray-500">
                  <i class="fa fa-arrows-h"></i>
                </span>
                <input 
                  type="number" 
                  id="length" 
                  name="length" 
                  min="1" 
                  placeholder="Length" 
                  class="w-full pl-10 pr-4 py-3 border border-gray-300 rounded-lg input-focus"
                  required
                >
              </div>
              <div class="relative">
                <span class="absolute inset-y-0 left-0 flex items-center pl-3 text-gray-500">
                  <i class="fa fa-arrows-v"></i>
                </span>
                <input 
                  type="number" 
                  id="width" 
                  name="width" 
                  min="1" 
                  placeholder="Width" 
                  class="w-full pl-10 pr-4 py-3 border border-gray-300 rounded-lg input-focus"
                  required
                >
              </div>
              <div class="relative">
                <span class="absolute inset-y-0 left-0 flex items-center pl-3 text-gray-500">
                  <i class="fa fa-arrows-alt"></i>
                </span>
                <input 
                  type="number" 
                  id="height" 
                  name="height" 
                  min="1" 
                  placeholder="Height" 
                  class="w-full pl-10 pr-4 py-3 border border-gray-300 rounded-lg input-focus"
                  required
                >
              </div>
            </div>
          </div>
          <!-- Additional Options -->
          <div class="pt-2">
            <label class="block text-sm font-medium text-gray-700 mb-3">Additional Services</label>
            <div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-3">
              <label class="flex items-center space-x-2 p-3 border border-gray-200 rounded-lg cursor-pointer hover:bg-neutral transition-colors">
                <input type="checkbox" name="insurance" class="w-4 h-4 text-primary rounded">
                <span>Insurance</span>
              </label>
              <label class="flex items-center space-x-2 p-3 border border-gray-200 rounded-lg cursor-pointer hover:bg-neutral transition-colors">
                <input type="checkbox" name="signature" class="w-4 h-4 text-primary rounded">
                <span>Signature Required</span>
              </label>
              <label class="flex items-center space-x-2 p-3 border border-gray-200 rounded-lg cursor-pointer hover:bg-neutral transition-colors">
                <input type="checkbox" name="saturday" class="w-4 h-4 text-primary rounded">
                <span>Saturday Delivery</span>
              </label>
            </div>
          </div>
          <!-- Submit Button -->
          <div class="pt-4">
            <button 
              type="submit" 
              id="calculateBtn" 
              class="w-full md:w-auto md:ml-auto bg-primary hover:bg-primary/90 text-white font-medium py-3 px-8 rounded-lg flex items-center justify-center space-x-2 btn-hover"
            >
              <i class="fa fa-calculator"></i>
              <span>Calculate Shipping Rates</span>
            </button>
          </div>
        </form>
      </div>
    </section>
    <!-- Results Section (Initially Hidden) -->
    <section id="resultsSection" class="hidden max-w-5xl mx-auto animate-fade-in">
      <div class="bg-white rounded-2xl shadow-xl overflow-hidden">
        <div class="bg-gradient-to-r from-primary to-secondary text-white p-6 md:p-8">
          <h3 class="text-xl md:text-2xl font-bold mb-2">Shipping Rate Comparison</h3>
          <p class="opacity-90">Based on your entered information</p>
        </div>
        <div class="p-6 md:p-8">
          <!-- Results Summary -->
          <div class="mb-8 bg-neutral rounded-xl p-4 md:p-6">
            <div class="grid grid-cols-1 md:grid-cols-3 gap-4 md:gap-6">
              <div class="flex items-start space-x-3">
                <div class="bg-primary/10 p-3 rounded-lg">
                  <i class="fa fa-exchange text-primary text-xl"></i>
                </div>
                <div>
                  <h4 class="text-sm font-medium text-gray-500">Route</h4>
                  <p class="font-semibold" id="routeDisplay">90210 → 10001</p>
                </div>
              </div>
              <div class="flex items-start space-x-3">
                <div class="bg-primary/10 p-3 rounded-lg">
                  <i class="fa fa-box text-primary text-xl"></i>
                </div>
                <div>
                  <h4 class="text-sm font-medium text-gray-500">Package</h4>
                  <p class="font-semibold" id="packageDisplay">Medium Box, 5.5 lbs</p>
                </div>
              </div>
              <div class="flex items-start space-x-3">
                <div class="bg-primary/10 p-3 rounded-lg">
                  <i class="fa fa-clock-o text-primary text-xl"></i>
                </div>
                <div>
                  <h4 class="text-sm font-medium text-gray-500">Estimated Delivery</h4>
                  <p class="font-semibold" id="deliveryDisplay">2-5 Business Days</p>
                </div>
              </div>
            </div>
          </div>
          <!-- Chart Comparison -->
          <div class="mb-10">
            <h4 class="text-lg font-semibold mb-4">Rate Comparison by Carrier</h4>
            <div class="h-64 md:h-8

本文链接:https://www.fbatc.cn/zblog/?id=469

阅读更多

网友评论