js仿土豆网带缩略图的焦点图片切换效果实现方法


Posted in Javascript onFebruary 23, 2015

本文实例讲述了js仿土豆网带缩略图的焦点图片切换效果实现方法。分享给大家供大家参考。具体实现方法如下:

<!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>仿土豆网带缩略图的焦点图片切换效果</title>

<style type="text/css">

/* Reset style */

* { margin:0; padding:0; word-break:break-all; }

body { background:#FFF; color:#333; font:12px/1.6em Helvetica, Arial, sans-serif; }

h1, h2, h3, h4, h5, h6 { font-size:1em; }

a { color:#039; text-decoration:none; }

a:hover { text-decoration:underline; }

ul, li { list-style:none; }

fieldset, img { border:none; }

em, strong, cite, th { font-style:normal; font-weight:normal; }

/* Focus_change style */

#focus_change { position:relative; width:450px; height:295px; overflow:hidden; margin:20px 0 1px 60px; }

#focus_change_list { position:absolute; width:1800px; height:295px; }

#focus_change_list li { float:left; }

#focus_change_list li img { width:450px; height:295px; }

.focus_change_opacity { position:absolute; width:450px; height:70px; top:225px; left:0; background:#000; filter:alpha(opacity=50); -moz-opacity:0.5; opacity: 0.5; }

#focus_change_btn { position:absolute; width:450px; height:65px; top:225px; left:0; }

#focus_change_btn ul { padding-left:5px; }

#focus_change_btn li { display:inline; float:left; margin:0 15px; padding-top:12px; }

#focus_change_btn li img { width:76px; height:50px; border:2px solid #888; }

#focus_change_btn .current { background:url(/uploadfile/200901/1/6C164133877.gif) no-repeat 37px 8px;}

#focus_change_btn .current img { border-color:#EEE; }

</style>

<script type="text/javascript">

function $(id) { return document.getElementById(id); }

function moveElement(elementID,final_x,final_y,interval) {

if (!document.getElementById) return false;

if (!document.getElementById(elementID)) return false;

var elem = document.getElementById(elementID);

if (elem.movement) {

clearTimeout(elem.movement);

}

if (!elem.style.left) {

elem.style.left = "0px";

}

if (!elem.style.top) {

elem.style.top = "0px";

}

var xpos = parseInt(elem.style.left);

var ypos = parseInt(elem.style.top);

if (xpos == final_x && ypos == final_y) {

return true;

}

if (xpos < final_x) {

var dist = Math.ceil((final_x - xpos)/10);

xpos = xpos + dist;

}

if (xpos > final_x) {

var dist = Math.ceil((xpos - final_x)/10);

xpos = xpos - dist;

}

if (ypos < final_y) {

var dist = Math.ceil((final_y - ypos)/10);

ypos = ypos + dist;

}

if (ypos > final_y) {

var dist = Math.ceil((ypos - final_y)/10);

ypos = ypos - dist;

}

elem.style.left = xpos + "px";

elem.style.top = ypos + "px";

var repeat = "moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")";

elem.movement = setTimeout(repeat,interval);

}

function classNormal(){

var focusBtnList = $('focus_change_btn').getElementsByTagName('li');

for(var i=0; i<focusBtnList.length; i++) {

focusBtnList[i].className='';

}

}

function focusChange() {

var focusBtnList = $('focus_change_btn').getElementsByTagName('li');

focusBtnList[0].onmouseover = function() {

moveElement('focus_change_list',0,0,5);

classNormal()

focusBtnList[0].className='current'

}

focusBtnList[1].onmouseover = function() {

moveElement('focus_change_list',-450,0,5);

classNormal()

focusBtnList[1].className='current'

}

focusBtnList[2].onmouseover = function() {

moveElement('focus_change_list',-900,0,5);

classNormal()

focusBtnList[2].className='current'

}

focusBtnList[3].onmouseover = function() {

moveElement('focus_change_list',-1350,0,5);

classNormal()

focusBtnList[3].className='current'

}

}

setInterval('autoFocusChange()', 5000);

var atuokey = false;

function autoFocusChange() {

$('focus_change').onmouseover = function(){atuokey = true}

$('focus_change').onmouseout = function(){atuokey = false}

if(atuokey) return;

var focusBtnList = $('focus_change_btn').getElementsByTagName('li');

for(var i=0; i<focusBtnList.length; i++) {

if (focusBtnList[i].className == 'current') {

var currentNum = i;

}

}

if (currentNum==0 ){

moveElement('focus_change_list',-450,0,5);

classNormal()

focusBtnList[1].className='current'

}

if (currentNum==1 ){

moveElement('focus_change_list',-900,0,5);

classNormal()

focusBtnList[2].className='current'

}

if (currentNum==2 ){

moveElement('focus_change_list',-1350,0,5);

classNormal()

focusBtnList[3].className='current'

}

if (currentNum==3 ){

moveElement('focus_change_list',0,0,5);

classNormal()

focusBtnList[0].className='current'

}

}

window.onload=function(){

focusChange();

}

</script>

</head>

<body>

<div id="focus_change">

<div id="focus_change_list" style="top:0; left:0;">

<ul>

<li><a href="https://3water.com/"><img src="/images/m03.jpg" alt="" /></a></li>

<li><a href="https://3water.com/"><img src="/images/m04.jpg" alt="" /></a></li>

<li><a href="https://3water.com/"><img src="/images/m09.jpg" alt="" /></a></li>

<li><a href="https://3water.com/"><img src="/images/m10.jpg" alt="" /></a></li>

</ul>

</div>

<div class="focus_change_opacity"></div>

<div id="focus_change_btn">

<ul>

<li class="current"><a href="#"><img src="/images/s3.jpg" alt="" /></a></li>

<li><a href="#"><img src="/images/s4.jpg" alt="" /></a></li>

<li><a href="#"><img src="/images/s9.jpg" alt="" /></a></li>

<li><a href="#"><img src="/images/s10.jpg" alt="" /></a></li>

</ul>

</div>

</div><!--focus_change end-->

<div style="height:20px; background:#EEE;"></div>

</body>

</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
javascript 日期时间函数(经典+完善+实用)
May 27 Javascript
javascript attachEvent绑定多个事件执行顺序问题
Oct 20 Javascript
jquery 实现密码框的显示与隐藏示例代码
Sep 18 Javascript
学习JavaScript设计模式之责任链模式
Jan 18 Javascript
jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)
May 27 Javascript
第十篇BootStrap轮播插件使用详解
Jun 21 Javascript
jQuery实现的点击标题文字切换字体效果示例【测试可用】
Apr 26 jQuery
vue :src 文件路径错误问题的解决方法
May 15 Javascript
脚手架vue-cli工程webpack的基本用法详解
Sep 29 Javascript
Node.js web 应用如何封装到Docker容器中
Sep 01 Javascript
Vue实现返回顶部按钮实例代码
Oct 21 Javascript
vue中控制mock在开发环境使用,在生产环境禁用方式
Apr 06 Vue.js
JS实现仿中关村论坛评分后弹出提示效果的方法
Feb 23 #Javascript
jQuery+AJAX实现网页无刷新上传
Feb 22 #Javascript
AngularJS学习笔记之TodoMVC的分析
Feb 22 #Javascript
使用jquery组件qrcode生成二维码及应用指南
Feb 22 #Javascript
javascript实现博客园页面右下角返回顶部按钮
Feb 22 #Javascript
JS+CSS实现感应鼠标渐变显示DIV层的方法
Feb 20 #Javascript
js实现图片和链接文字同步切换特效的方法
Feb 20 #Javascript
You might like
安装PHP可能遇到的问题“无法载入mysql扩展” 的解决方法
2007/04/16 PHP
php仿QQ验证码的实例分析
2013/07/01 PHP
PHP实现服务器状态监控的方法
2014/12/09 PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
2016/09/19 PHP
利用php生成验证码
2017/02/23 PHP
原生php实现excel文件读写的方法分析
2018/04/25 PHP
Javascript 继承机制的实现
2009/08/12 Javascript
9个JavaScript评级/投票插件
2010/01/18 Javascript
Jquery公告滚动+AJAX后台得到数据
2011/04/14 Javascript
jquery实现瀑布流效果分享
2014/03/26 Javascript
一个JavaScript递归实现反转数组字符串的实例
2014/10/14 Javascript
JavaScript使用yield模拟多线程的方法
2015/03/19 Javascript
JavaScript中Boolean对象的属性解析
2015/10/21 Javascript
jQuery实时显示鼠标指针位置和键盘ASCII码
2016/03/28 Javascript
jQuery ztree实现动态树形多选菜单
2016/08/12 Javascript
微信小程序  modal详解及实例代码
2016/11/09 Javascript
微信小程序开发之录音机 音频播放 动画实例 (真机可用)
2016/12/08 Javascript
vue插件mescroll.js实现移动端上拉加载和下拉刷新
2019/03/07 Javascript
浅谈JavaScript面向对象--继承
2019/03/20 Javascript
如何利用vue实现波谱拟合详解
2020/11/05 Javascript
[36:37]2014 DOTA2华西杯精英邀请赛5 24 VG VS iG
2014/05/25 DOTA
[34:08]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS EG
2018/03/30 DOTA
[01:16:28]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第二场 2月23日
2021/03/11 DOTA
Python探索之Metaclass初步了解
2017/10/28 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
2018/04/18 Python
python utc datetime转换为时间戳的方法
2019/01/15 Python
Python自动化之数据驱动让你的脚本简洁10倍【推荐】
2019/06/04 Python
Python获取当前脚本文件夹(Script)的绝对路径方法代码
2019/08/27 Python
解决matplotlib.pyplot在Jupyter notebook中不显示图像问题
2020/04/22 Python
C#如何允许一个类被继承但是避免这个类的方法被重载?
2015/02/24 面试题
租房协议书怎么写
2014/04/10 职场文书
租房安全协议书
2014/08/20 职场文书
迎国庆演讲稿
2014/09/05 职场文书
Nginx配置https原理及实现过程详解
2021/03/31 Servers
《LOL》“克隆大作战”久违归来 幻灵战队皮肤上线
2022/04/03 其他游戏
nginx配置指令之server_name的具体使用
2022/08/14 Servers