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 学习之旅 (2)
Feb 05 Javascript
JavaScript isArray()函数判断对象类型的种种方法
Oct 11 Javascript
js 遍历对象的属性的代码
Dec 29 Javascript
用javascript关闭本窗口不弹出询问框的方法
Sep 12 Javascript
EasyUi datagrid 实现表格分页
Feb 10 Javascript
微信小程序 在线支付功能的实现
Mar 14 Javascript
js如何获取网页所有图片
May 12 Javascript
jquery实现下拉菜单的手风琴效果
Jul 23 jQuery
实现图片首尾平滑轮播(JS原生方法—节流)
Oct 17 Javascript
360doc网站不登录就无法复制内容的解决方法
Jan 27 Javascript
配置node服务器并且链接微信公众号接口配置步骤详解
Jun 21 Javascript
JavaScript实现雪花飘落效果
Dec 27 Javascript
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读取3389的脚本
2014/05/06 PHP
php 实现Hash表功能实例详解
2016/11/29 PHP
yii2 数据库读写分离配置示例
2017/02/10 PHP
jquery实现input输入框实时输入触发事件代码
2014/01/28 Javascript
JavaScript中的Repaint和Reflow用法详解
2015/07/27 Javascript
Jquery1.9.1源码分析系列(十五)动画处理之外篇
2015/12/04 Javascript
JS中创建函数的三种方式及区别
2016/03/13 Javascript
js仿百度音乐全选操作
2017/01/13 Javascript
详解vue-router2.0动态路由获取参数
2017/06/14 Javascript
js与jQuery实现获取table中的数据并拼成json字符串操作示例
2018/07/12 jQuery
vue鼠标移入添加class样式,鼠标移出去除样式(active)实现方法
2018/08/22 Javascript
说说Vue.js中的functional函数化组件的使用
2019/02/12 Javascript
vue中v-text / v-html使用实例代码详解
2019/04/02 Javascript
[02:57]DOTA2英雄基础教程 风行者
2014/01/16 DOTA
Python编程中的for循环语句学习教程
2015/10/14 Python
Python中Django发送带图片和附件的邮件
2017/03/31 Python
妙用itchat! python实现久坐提醒功能
2019/11/25 Python
Python使用requests xpath 并开启多线程爬取西刺代理ip实例
2020/03/06 Python
国外平面设计素材网站:The Hungry JPEG
2017/03/28 全球购物
美国紧身牛仔裤品牌:NYDJ
2017/05/24 全球购物
Needle & Thread官网:英国仙女品牌
2018/01/13 全球购物
香港家用健身器材、运动器材及健康美容仪器专门店:FitBoxx
2019/12/05 全球购物
办理信用卡工作证明
2014/01/11 职场文书
电大会计学自我鉴定
2014/02/06 职场文书
房地产推广策划方案
2014/05/19 职场文书
投资意向书
2014/07/30 职场文书
中韩经贸翻译专业大学生职业生涯规划范文
2014/09/18 职场文书
党支部综合考察意见
2015/06/01 职场文书
复兴之路观后感3000字
2015/06/02 职场文书
欢迎新生标语2015
2015/07/16 职场文书
2016年学生会感恩节活动总结
2016/04/01 职场文书
比较几种Redis集群方案
2021/06/21 Redis
python可视化之颜色映射详解
2021/09/15 Python
python百行代码实现汉服圈图片爬取
2021/11/23 Python
动视暴雪取消疫苗禁令 让所有员工返回线下工作
2022/04/03 其他游戏
Spring Boot项目传参校验的最佳实践指南
2022/04/05 Java/Android