一款简单的jQuery图片标注效果附源码下载


Posted in Javascript onMarch 22, 2016

为了提高用户体验度,在一些电商网站和家居网站上我们会看到,一张图片中显示多种商品,点击每个商品可以弹出对应商品的简单介绍,包括价格等等,设计非常的人性化,今天我们通过实例给大家分享使用jQuery插件来实现这一效果。

先给大家展示下效果图:

一款简单的jQuery图片标注效果附源码下载

效果演示          源码下载

HTML

首先,我们加载jQuery库和easypin插件。

<script src="jquery.min.js"></script> 
<script src="jquery.easing.min.js"></script> 
<script src="jquery.easypin.min.js"></script>

接着,我们准备一张图片,这是一张展示多个模特服装鞋子包包内的电商图片,注意我们给图片一个easypin-id属性,它用来标记当前图片id,用来被后面插件调用。

<img src="fashion.jpg" class="pin" width="900" easypin-id="demo_image_1" />

我们还需要制作一个用于弹出显示商品信息的隐藏层,使用属性easypin-tpl来标记弹出层。标签popover是弹出层元素,标签marker是标注点元素。再配合CSS来让弹出层有一个漂亮的外观。

<div style="display:none;" easypin-tpl> 
<popover> 
<div class="exPopoverContainer"> 
<div class="popBg borderRadius"></div> 
<div class="popBody"> 
<div class="arrow-down" style="top: 170px;left: 13px;"></div> 
<h1>{[name]}</h1> 
<div class="popHeadLine"></div> 
<div class="popContentLeft"> 
{[description]} 
<br /> 
<br /> 
<a href="#">Buy</a> 
<a href="#">More info</a> 
</div> 
<div class="popContentRight">{[price]}</div> 
</div> 
</div> 
</popover> 
<marker> 
<div class="marker2 element-animation"> 
</div> 
</marker> 
</div>

jQuery

插件提供了easypin()和easypinShow()两个方法,我们使用easypinShow()来展示图片标注效果,它有一个data选项,支持json格式,它定义标注点相关数据,包括坐标位置,商品名称、描述和价格,这些数据可以是后台统一生成。它还提供了很多其他选项和回调函数,请看下面的代码。

$(document).ready(function(){ 
$('.pin').easypinShow({ 
data: '{"demo_image_1":{"0":{"name":"商品名称","description":"商品描述信息. ","price":"$67","coords":{"lat":"800","long":"228"}},"1":{"name":"Pierre Cardin","description":"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore. ","price":"$98","coords":{"lat":"597","long":"357"}},"2":{"name":"Pierre Cardin","description":"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ","price":"$100","coords":{"lat":"241","long":"352"}},"canvas":{"src":"fashion.jpg","width":"1000","height":"625"}}}', 
responsive: false, 
variables: { 
firstname: function(canvas_id, pin_id, data) { 
//console.log(canvas_id, pin_id, data); 
return data; 
}, 
surname: function(canvas_id, pin_id, data) { 
//console.log(canvas_id, pin_id, data); 
return data; 
} 
}, 
popover: { 
show: false, 
animate: true 
}, 
each: function(index, data) { 
return data; 
}, 
error: function(e) { 
console.log(e); 
}, 
success: function() { 
console.log('ok'); 
} 
}); 
});

easypin()可以用来实现图片标注效果,您可以在图片上任意位置标注,然后再弹出层中填写标注信息提交即可,支持拖动等等

一款简单的jQuery图片标注效果附源码下载到此就给大家介绍完了,希望对大家有所帮助!

Javascript 相关文章推荐
jQuery使用手册之一
Mar 24 Javascript
基于jquery的跨域调用文件
Nov 19 Javascript
jQuery boxy弹出层插件中文演示及使用讲解
Feb 24 Javascript
JS对话框_JS模态对话框showModalDialog用法总结
Jan 11 Javascript
Jquery Ajax Error 调试错误的技巧
Nov 20 Javascript
Javascript编程中几种继承方式比较分析
Nov 28 Javascript
关于JS中setTimeout()无法调用带参函数问题的解决方法
Jun 21 Javascript
jQuery简单实现iframe的高度根据页面内容自适应的方法
Aug 01 Javascript
JS中判断某个字符串是否包含另一个字符串的五种方法
May 03 Javascript
详解angularjs4部署文件过大解决过程
Dec 05 Javascript
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
Feb 27 jQuery
Openlayers绘制地图标注
Sep 28 Javascript
酷炫jQuery全屏3D焦点图动画效果
Mar 22 #Javascript
浅析C/C++,Java,PHP,JavaScript,Json数组、对象赋值时最后一个元素后面是否可以带逗号
Mar 22 #Javascript
使用struts2+Ajax+jquery验证用户名是否已被注册
Mar 22 #Javascript
使用getBoundingClientRect方法实现简洁的sticky组件的方法
Mar 22 #Javascript
Node.js文件操作方法汇总
Mar 22 #Javascript
浅谈Sticky组件的改进实现
Mar 22 #Javascript
使用Sticky组件实现带sticky效果的tab导航和滚动导航的方法
Mar 22 #Javascript
You might like
隐藏你的.php文件的实现方法
2007/03/19 PHP
php学习笔记 数组的常用函数
2011/06/13 PHP
PHP性能优化工具篇Benchmark类调试执行时间
2011/12/06 PHP
PHP去掉从word直接粘贴过来的没有用格式的函数
2012/10/29 PHP
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
2014/06/23 PHP
PHP生成图片缩略图类示例
2017/01/12 PHP
Laravel框架查询构造器 CURD操作示例
2019/09/04 PHP
Javascript常考语句107条收集
2010/03/09 Javascript
jquery下利用jsonp跨域访问实现方法
2010/07/29 Javascript
js关闭浏览器窗口及检查浏览器关闭事件
2013/09/03 Javascript
jQuery判断checkbox是否选中的3种方法
2014/08/12 Javascript
JS网页在线获取鼠标坐标值的方法
2015/02/28 Javascript
js实现类似jquery里animate动画效果的方法
2015/04/10 Javascript
详解JavaScript中的异常处理方法
2015/06/16 Javascript
jQuery插件Easyui设置datagrid的pageNumber导致两次请求问题的解决方法
2016/08/06 Javascript
9个让JavaScript调试更简单的Console命令
2016/11/14 Javascript
jQuery日程管理插件fullcalendar使用详解
2017/01/07 Javascript
vue.js学习笔记:如何加载本地json文件
2017/01/17 Javascript
原生JavaScript实现Tooltip浮动提示框特效
2017/03/07 Javascript
vue异步axios获取的数据渲染到页面的方法
2018/08/09 Javascript
基于Vue的侧边目录组件的实现
2020/02/05 Javascript
js实现上传按钮并显示缩略图小轮子
2020/05/04 Javascript
详解vue之自行实现派发与广播(dispatch与broadcast)
2021/01/19 Vue.js
[57:22]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第五场
2018/04/10 DOTA
python删除文件示例分享
2014/01/28 Python
python 连接sqlite及简单操作
2017/06/30 Python
python字符串与url编码的转换实例
2018/05/10 Python
HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)
2017/01/05 HTML / CSS
美国香薰蜡烛品牌:PADDYWAX
2018/10/06 全球购物
2014两会学习心得:榜样精神伴我行
2014/03/17 职场文书
医院我们的节日活动实施方案
2014/08/22 职场文书
官僚主义现象查摆问题整改措施
2014/10/04 职场文书
2019年国庆祝福语(70句)
2019/09/19 职场文书
vue backtop组件的实现完整代码
2021/04/07 Vue.js
OpenCV-Python使用cv2实现傅里叶变换
2021/06/09 Python
SQL实现LeetCode(197.上升温度)
2021/08/07 MySQL