Jquery 类网页微信二维码图块滚动效果具体实现
作者:
网页微信二维码图块滚动效果想必大家都有见到过吧,在接下来的文章中将为大家详细介绍下使用Jquery是如何实现,感兴趣的朋友可以参考下
首先是自己定制的脚本方法属性代码:
复制代码 代码如下:
/*
* 创建浮动图片广告(Generate a dock AD image)
*
* USAGE:
* $(selector).higo_plugins_ad({
* src:null, // 广告图片路径
* closeSrc:null, // 关闭图片路径
* href:"#", // 广告图片链接地址
* autoHide:true, // 是否自动隐藏
* hideSecond:10, // 延迟隐藏秒数
* top:20, // 距离顶部偏移高度
* layout:"left", // 默认图片位置:left 居左 ,right 居右, center 居中,
* width:100, // 宽度
* height:100, // 高度
* opacity:0.5 // 透明度opacity:0.5(firefox), filter:alpha(opacity=50)(IE)
* setPosition:function(left, top){ // 预留自定义显示位置的方法(尚未实现)
* return;
* }
* })
*/
其次是详细效果实现:
复制代码 代码如下:
(function($){
$.fn.ad = function(options){
var lastScrollY= 0;
var czd = $(this);
var settings = $.extend({
src:null,
closeSrc:null,
href:"#",
autoHide:true,
hideSecond:10,
position: "top",
top:20,
bottom:20,
layout:"left",
width:100,
height:100,
opacity:0.5,
setPosition:function(left, top){
return;
}
},options || {});
if(settings.src && settings.closeSrc){
var imgEl = "<a href='" + settings.href + "' target='_blank'><img border=0 width='" + settings.width + "px' height='" + settings.height + "px' src='" + settings.src + "'/> <br></a>";
var closeImgEl = "<a href=\"#\"; onclick=\"this.parentElement.style.visibility='hidden'\"><img border=0 src='" + settings.closeSrc +"'/></a>";
$(this).append(imgEl + closeImgEl);
$(this).css("position","absolute");
if(settings.position=='top'){
$(this).css("top",settings.top + "px");
} else {
$(this).css("bottom",settings.bottom + "px");
}
$(this).css("opacity",settings.opacity);
$(this).css("filter","alpha(opacity=" + parseInt(settings.opacity * 100) + ")");
switch(settings.layout) {
case "left":
$(this).css("left","-100px");
break;
case "right":
$(this).css("right","-100px");
break;
case "center":
var left = (parseInt(window.screen.availWidth) - parseInt(settings.width))/2 + "px";
$(this).css("left",left);
break;
default:
$(this).css("left","-100px");
break;
}
} else {
return;
}
if(settings.autoHide) {
setTimeout("(function(){$('" + $(this).selector + "').hide();})();",parseInt(settings.hideSecond) * 1000;
}
//别名不同导致事件驱动不一样:scroll与onscroll
$(window).bind("scroll", function(){
var diffY;
if (document.documentElement && document.documentElement.scrollTop)
diffY = document.documentElement.scrollTop;
else if (document.body)
diffY = document.body.scrollTop
else {
/*Netscape stuff*/
}
percent= 1 * (diffY - lastScrollY);
if(percent>0)
percent=Math.ceil(percent);
else
percent=Math.floor(percent);
if(settings.position=='top'){
var top = czd.css("top");
czd.css("top", parseInt(top) + percent + "px");
lastScrollY += percent;
} else {
var top = czd.css("bottom");
czd.css("bottom", parseInt(top) - percent + "px");lastScrollY += percent;
}
});
}
})(jQuery);
最后就是页面的编写:
一、导入自己定义的JQuery并配好head
复制代码 代码如下:
<decorator:head />
<script type="text/javascript" src="<%=basePath%>js/jquery.czd_plugins_ad.js"></script>
<script language="javascript">
$(document).ready(function(){
$("#leftbelow").ad({
src:"<%=basePath%>/images/qrcode.png",
closeSrc:"<%=basePath%>/images/closeAd.gif",
autoHide:false,
hideSecond:5,
top:480,
layout:"left",
width:100,
height:100,
opacity:5
});
$("#left").ad({
src:"<%=basePath%>/images/longtentianxia20131010.jpg",
closeSrc:"<%=basePath%>/images/closeAd.gif",
href:"......",
autoHide:false,
hideSecond:5,
top:-70,
layout:"left",
width:100,
height:500 ,
opacity:5
});
$("#right").ad({
src:"<%=basePath%>/images/yingxiaodasai201203012.jpg",
closeSrc:"<%=basePath%>/images/closeAd.gif",
href:"......",
autoHide:false,
hideSecond:5,
top:-70,
layout:"right",
width:100,
height:500,
opacity:5
});
});
</script>
二、写上主体body代码
复制代码 代码如下:
<body class="homeBackgroup">
<div id="center"> </div>
<%@include file="/page/public/sideBar.jsp"%>
<div class="shadow">
<div id="container">
<div id="header">
<%@include file="/page/public/top.jsp"%>
</div>
<div id="mainContent">
<div id="left"></div>
<decorator:body />
<div id="right"></div>
<div id="leftbelow"></div>
</div>
<div id="footer" >
<%@include file="/page/public/bottom.jsp"%>
</div>
<div id="back-top">
<a href="#top"><span></span></a>
</div>
</div>
</div>
</body>