大数跨境

网页设计技巧:结合 jQuery 特效与插件,打造卓越营销效果

网页设计技巧:结合 jQuery 特效与插件,打造卓越营销效果 电商实践
2009-09-08
2
导读:轻量级(文件体积小)且简洁的 jQuery 库使得为几乎任何内容添加交互效果和营销功能变得相对容易。

轻量级且简洁的 jQuery 库,使得在电商网站中添加交互效果和商品展示功能变得相对容易。

示例页面截图

本期“网页设计技巧”将演示如何将 jQuery 效果与 jCarousel 插件结合,在页面顶部创建商品展示区。该区域每次显示四个产品并自动向左滑动(每三秒切换一次);当访客悬停于产品图片时,滑块暂停并显示简要描述。

下载 jCarousel

本示例使用 Jan Sorgalla 开发的 jCarousel 插件。下载最新版本(0.2.3)后,可获得包含 CSS、图片及 JavaScript 文件(含 jQuery 1.2.3)的压缩包。

需注意:撰写本文时 jQuery 最新版为 1.3.2,但 jCarousel 与之存在兼容性问题。若后续需使用依赖新版 jQuery 的其他插件,请务必测试兼容性。

调用外部文件

实现 jCarousel 的首要步骤是引用所需的 CSS 和 JS 文件:

<link rel="stylesheet" type="text/css" href="lib/jquery.jcarousel.css" /><link rel="stylesheet" type="text/css" href="skins/tango/skin.css" /><script type="text/javascript" src="lib/jquery-1.2.3.pack.js"></script><script type="text/javascript" src="lib/jquery.jcarousel.js"></script>

请根据实际文件目录调整路径,例如:src="the/path/to/your/folder/jquery-1.2.3.pack.js"。

创建 MyCarousel <UL>

在 HTML 中添加一个 ID 为 mycarousel 的无序列表(<ul>),用于承载滑块内容。基本结构如下:

<ul id="mycarousel" class="jcarousel-skin-tango"><li>Something</li></ul>

视频示例中的完整列表代码如下:

<ul id="mycarousel" class="jcarousel-skin-tango"><!-- The content goes in here --><li><img src="images/deal-1.jpg" alt="What a deal" /><span id="marMess">Coil Framing Nailer</span></li><li><img src="images/deal-2.jpg" alt="What a deal" /><span id="marMess">Stick Timber Nailer</span></li><li><img src="images/deal-3.jpg" alt="What a deal" /><span id="marMess">Wide Crown Stapler</span></li><li><img src="images/deal-4.jpg" alt="What a deal" /><span id="marMess">3 HP 10" Unisaw</span></li><li><img src="images/deal-5.jpg" alt="What a deal" /><span id="marMess">Deluxe Plate Joiner Kit</span></li><li><img src="images/deal-6.jpg" alt="What a deal" /><span id="marMess">Air Hammer</span></li><li><img src="images/deal-7.jpg" alt="What a deal" /><span id="marMess">Cordless Drill</span></li><li><img src="images/deal-8.jpg" alt="What a deal" /><span id="marMess">9" Band Saw</span></li><li><img src="images/deal-9.jpg" alt="What a deal" /><span id="marMess">Laminate Tripper</span></li><li><img src="images/deal-10.jpg" alt="What a deal" /><span id="marMess">Cordless Drywall Screwdriver</span></li><li><img src="images/deal-11.jpg" alt="What a deal" /><span id="marMess">Cordless Impact Driver Kit</span></li></ul>

调用并配置函数

为实现自动滚动,需在 HTML 的 <head> 部分添加以下脚本代码:

function mycarousel_initCallback(carousel) { // Pause autoscrolling if the user moves with the cursor over the clip. carousel.clip.hover(function() { carousel.stopAuto(); }, function() { carousel.startAuto(); }); }; jQuery(document).ready(function() { jQuery('#mycarousel').jcarousel({ auto: 3, wrap: 'last', initCallback: mycarousel_initCallback });
  • auto: 3, 设置每 3 秒自动前进一次(改为 10 则每 10 秒切换)。
  • scroll 设置:默认 jCarousel 每次滑动 3 个 <li>。为实现逐个滑动,需打开 jquery.jcarousel.js 文件(约第 54 行),将 scroll: 3 修改为 scroll: 1。

注:虽然理论上可在 HTML 初始化参数中直接设置 scroll: 1,但在自动滚动模式下可能触发 Bug(导致从首项跳至末项),建议直接在 JS 源文件中修改。

准备 CSS

部署 jCarousel 后,需编写 CSS 控制样式及滑动效果。

1. 列表项样式
设定 <li> 的尺寸与布局,确保内嵌的 <span> 描述能叠加于图片之上:

li {display:inline; height: 200px; width:200px; padding:50px;}

2. 描述信息样式
为 ID “marMess”(营销信息)的 <span> 设置定位与半透明背景,使其悬浮于图片上方:

#marMess {display: block; position: relative; top:-75px; padding: 15px; padding-bottom: 100%; background: #000000; color:#ffffff; opacity: .85; text-align: center; font-weight: bold;}

3. 清理默认皮肤
移除 jCarousel 自带的边框、箭头等冗余样式。

管理页面的降级表现

为确保未启用 JavaScript 的访客也能正常浏览,需遵循优雅降级原则。

对于滑块本身,禁用 JS 仅显示前四项尚可接受。但对于产品描述,若完全依赖 JS 显示,无 JS 用户将无法看到信息。因此,策略应为:CSS 默认显示描述,JS 负责隐藏。

由于 CSS 中已设 display: block,描述默认可见。接下来只需在 <head> 中添加一行 JS 即可在支持 JS 时隐藏它们:

$('span').hide();

使用 jQuery 的 hide() 方法是最简便的实现方式。

显示产品描述

利用 jQuery 的 fadeIn 效果,实现鼠标悬停时淡入显示描述:

$('li').mouseover(function () { $('span', this).fadeIn('100'); });
  • $('li').mouseover:监听鼠标移入列表项事件。
  • $('span', this):仅影响当前悬停项关联的 <span>。
  • fadeIn('100'):设置 100ms 的淡入时长。

再次隐藏产品描述

最后,添加鼠标移出时隐藏描述的逻辑,完善交互闭环:

$('li').mouseout(function () { $('span').hide(); });

至此,我们成功在有限空间内实现了美观的商品轮播展示。以下是完整的 HTML 页面代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="content-type" content="text/html;charset=utf-8" /><title>Practical Tool Store/Combining Demo</title><link href="toolstyle.css" rel="stylesheet" type="text/css" media="screen" /><link rel="stylesheet" type="text/css" href="lib/jquery.jcarousel.css" /><link rel="stylesheet" type="text/css" href="skins/tango/skin.css" /><script type="text/javascript" src="lib/jquery-1.2.3.pack.js"></script><script type="text/javascript" src="lib/jquery.jcarousel.js"></script><script type="text/javascript">function mycarousel_initCallback(carousel) { // Pause autoscrolling if the user moves with the cursor over the clip. carousel.clip.hover(function() { carousel.stopAuto(); }, function() { carousel.startAuto(); }); }; jQuery(document).ready(function() { jQuery('#mycarousel').jcarousel({ auto: 3, wrap: 'last', initCallback: mycarousel_initCallback }); $('span').hide(); $('li').mouseover(function () { $('span', this).fadeIn('100'); }); $('li').mouseout(function () { $('span').hide(); }); });</script></head><body><div id="wrapper"><div id="header"><img src="images/header.png"/><div id="merch"><ul id="mycarousel" class="jcarousel-skin-tango"><!-- The content goes in here --><li><img src="images/deal-1.jpg" alt="What a deal" /><span id="marMess">Coil Framing Nailer</span></li><li><img src="images/deal-2.jpg" alt="What a deal" /><span id="marMess">Stick Timber Nailer</span></li><li><img src="images/deal-3.jpg" alt="What a deal" /><span id="marMess">Wide Crown Stapler</span></li><li><img src="images/deal-4.jpg" alt="What a deal" /><span id="marMess">3 HP 10" Unisaw</span></li><li><img src="images/deal-5.jpg" alt="What a deal" /><span id="marMess">Deluxe Plate Joiner Kit</span></li><li><img src="images/deal-6.jpg" alt="What a deal" /><span id="marMess">Air Hammer</span></li><li><img src="images/deal-7.jpg" alt="What a deal" /><span id="marMess">Cordless Drill</span></li><li><img src="images/deal-8.jpg" alt="What a deal" /><span id="marMess">9" Band Saw</span></li><li><img src="images/deal-9.jpg" alt="What a deal" /><span id="marMess">Laminate Tripper</span></li><li><img src="images/deal-10.jpg" alt="What a deal" /><span id="marMess">Cordless Drywall Screwdriver</span></li><li><img src="images/deal-11.jpg" alt="What a deal" /><span id="marMess">Cordless Impact Driver Kit</span></li></ul></div><!--end merch--></div><!--end header--><img src="images/footer.png" /></div><!--end wrapper--></body></html>
【声明】内容源于网络
0
0
电商实践
电商实践
内容 8053
粉丝 0
电商实践 电商实践
总阅读37.4k
粉丝0
内容8.1k