当前位置:首页 > 图片 > 人物故事 > 正文
文章正文

js 动态背景效果 javascript实现网页背景图跟随效果

图片 > 人物故事 > :js 动态背景效果 javascript实现网页背景图跟随效果是由美文导刊网(www.eorder.net.cn)为您精心收集,如果觉得好,请把这篇文章复制到您的博客或告诉您的朋友,以下是js 动态背景效果 javascript实现网页背景图跟随效果的正文:

javascript实现网页背景图跟随效果

上次看到一个网站有这个效果,模仿了下。效果差不多;效果描述:网页中的背景图随鼠标移上去会发生某个方向的偏移

鼠标靠浏览器右侧移上图片部分,背景图会往左移动,靠左侧移上图片,则相反.

实现代码:

js:

返回搜狐,查看更多

前端特效开发 | JS实现聚光灯看图效果

HTML5学堂(码匠):昏暗的场景下,查看任何的图片、效果都会给人不适的感觉,所以人们往往喜欢在明亮的场景中来体验世界的美好。 对于前端开发来说,想要让用户能在更明亮的状态下查看各种图片,那就必须为页面增加上一个“镁光灯”。

本文主要内容

1. 效果展示

2. 实现的原理分析

3. 案例实现

1. 效果展示

如上的效果中,可以实现对查看的图片实现聚光效果。当用户的鼠标移入到某一张图片时,“镁光灯”即聚焦在当前的图片上,这张图片就高亮的展示出来,同时为了更突出所选的这张图片,就把没有被选择到的其它图片添加阴影透明。上图的效果结合相关的描述,大家对此效果的实现有没有一点自己的思路或者方法呢?

2. 实现的原理分析

2.1 结构与样式搭建

为了实现图片的的聚光效果,使用了ul>li来嵌套图片的结构,并且采用的是浮动布局,让多个列表项并排在一起;然后为页面的body增加黑色的背景,以期来增加聚光时的高亮状态;同时为了让鼠标移入时有更好的展示状态,在hover时特地为图片增加一个白色的边框,以区分当前展示的图片区域。

2.2 功能逻辑分析

首先动态的获取了当前每张图片的大小,并设定一个透明度变量;

然后借助JQ的hover()方法,实现鼠标移入移出的图片展示;

最后当用户的鼠标移开了无序列表时,还原当前图片的不透明状态。

3. 案例实现

3.1 获取当前图片大小

借助JQ的find方法找到图片img,获取其宽高大小与设定的透明值一起存放在对象中,以便后期使用的时候可以直接拿取。

之后借助样式设置方法.css(),为列表项的每个列表设置当前图片的大小,使用对象.属性的方式取得前面对象中存储的值。具体代码如下所示:

  1. var spotlight = {

  2. opacity : 0.2,

  3. // 下面是为图像的宽度和高度,可以做相同大小

  4. (js 动态背景效果)
  5. imgWidth : $(".spotlight ul li").find("img").width(),

  6. imgHeight : $(".spotlight ul li").find("img").height()

  7. };

  8. // 将列表项的宽度和高度设置为与图像相同

  9. $(".spotlight ul li").css({

  10. "width": spotlight.imgWidth,

  11. "height": spotlight.imgHeight

  12. });

3.2 实现图片的聚光效果

实现聚光灯效果,主要需要考虑两个方面,一个是鼠标移入时对选中的图片进行高亮展示,同时对其它未选中的设置前面对象中设置好的透明度值;另一方面需要考虑的是当鼠标移开图片时,需要移除高亮显示,并且回归原来的初始状态。

针对如上的说法,特地在CSS样式中封装了一个叫做active的类名,其中主要设置的是鼠标移入后会展示的状态,所以在书写上只需要借助添加或者移除类名即可操作。具体如下所示:

  1. // 当鼠标悬停在列表项上时...

  2. $(".spotlight ul li").hover(function(){

  3. //...找到它里面的图像,并添加活动类,并更改不透明度为1(无透明度)

  4. $(this).find("img").addClass("active").css({

  5. "opacity" : 1

  6. });

  7. // 获取其他列表项,并更改其中的图像的不透明度为我们在Spotlight对象中设置的一个

  8. $(this).siblings("li").find("img").css({

  9. "opacity": spotlight.opacity

  10. }) ;

  11. //当鼠标离开...

  12. }, function(){

  13. // 找到刚刚离开的列表项中的图像,并删除活动类

  14. $(this).find("img").removeClass("active");

  15. });

3.3 还原初始状态

还原初始状态主要是发生在鼠标彻底的移开图片区域的时候,这时只需要为最外层的无序列表绑定鼠标移开事件—mouseleave,然后在里面设置所有的图片都不透明度即可,如下操作:

  1. // 当鼠标离开无序列表时...

  2. $(".spotlight ul").on("mouseleave",function(){

  3. // 找到图像并将不透明度更改为1(完全可见)

  4. $(this).find("img").css("opacity", 1);

  5. });

3.4 成品代码

  1. <!DOCTYPE htm>

  2. <html>

  3. <head>

  4. <meta charset="utf-8" />

  5. <title>jQuery图片聚光灯</title>

  6. <link rel="stylesheet" type="text/css" href="css/reset.css" />

  7. < type="text/java" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></>

  8. <style type="text/css">

  9. body {

  10. background: black;

  11. }

  12. .spotlight {

  13. width: 600px;

  14. margin: 0 auto;

  15. padding-top: 100px;

  16. }

  17. .spotlight ul li {

  18. float: left;

  19. position: relative;

  20. }

  21. .spotlight ul li a img {

  22. position: relative;

  23. width: 200px;

  24. height: 120px;

  25. border: none;

  26. }

  27. .spotlight ul li a img.active {

  28. left: -4px;

  29. top: -4px;

  30. border: 4px solid white;

  31. z-index: 1;

  32. }

  33. </style>

  34. </head>

  35. <body>

  36. <div class="spotlight">

  37. <ul class="clearfix">

  38. <li><a href=""><img src="" /></a></li>

  39. <li><a href=""><img src="" /></a></li>

  40. (js 动态背景效果)
  41. <li><a href=""><img src="" /></a></li>

  42. <li><a href=""><img src="" /></a></li>

  43. <li><a href=""><img src="" /></a></li>

  44. <li><a href=""><img src="" /></a></li>

  45. <li><a href=""><img src="" /></a></li>

  46. <li><a href=""><img src="" /></a></li>

  47. <li><a href=""><img src="" /></a></li>

  48. </ul>

  49. </div>

  50. < type="text/java">

  51. var spotlight = {

  52. opacity : 0.2,

  53. // 下面是为图像的宽度和高度,可以做相同大小

  54. imgWidth : $(".spotlight ul li").find("img").width(),

  55. imgHeight : $(".spotlight ul li").find("img").height()

  56. };

  57. // 将列表项的宽度和高度设置为与图像相同

  58. $(".spotlight ul li").css({

  59. "width": spotlight.imgWidth,

  60. "height": spotlight.imgHeight

  61. });

  62. // 当鼠标悬停在列表项上时...

  63. $(".spotlight ul li").hover(function(){

  64. //...找到它里面的图像,并添加活动类,并更改不透明度为1(无透明度)

  65. $(this).find("img").addClass("active").css({

  66. "opacity" : 1

  67. });

  68. // 获取其他列表项,并更改其中的图像的不透明度为我们在Spotlight对象中设置的一个

  69. $(this).siblings("li").find("img").css({

  70. "opacity": spotlight.opacity

  71. }) ;

  72. //当鼠标离开...

  73. }, function(){

  74. // 找到刚刚离开的列表项中的图像,并删除活动类

  75. $(this).find("img").removeClass("active");

  76. });

  77. // 当鼠标离开无序列表时...

  78. $(".spotlight ul").on("mouseleave",function(){

  79. // 找到图像并将不透明度更改为1(完全可见)

  80. $(this).find("img").css("opacity", 1);

  81. });

  82. </>

  83. </body>

  84. </html>

总结

一个简单的聚光灯效果,只是为了用户在查看一些相关的内容时可以获得更好的突出展示效果,这样可以进一步的提升用户的体验性。除此之外,使用JQ的快速开发也为当前的效果层面提升了很大的方便,后期我们仍然还会为大家带来更多具有实战意义的效果,尽请关注哦~~~

相关文章推荐:

点击下方“阅读原文”查看效果案例

↓↓↓返回搜狐,查看更多


一.怎么用JS动态更改DIV层的背景色?

<html>
<head>
<script language="javascript">
function a(){
document.ge旦唬测舅爻矫诧蝎超莽tElementById("d").style.background="red";
}
</script>
</head>
<body onload="a()">
<div id="d">
</div>
</body>
</html>

可以在层上加上onmouseover事件<div on旦唬测舅爻矫诧蝎超莽mouseover="javascript:this.style.backgroundColor='#F00'">123</div>


二.如何利用js动态改变body的背景图片?想要个简单的个例子?

<div id="BackBox">
<ul>
<li style="background:url(d.lanrentuku.com/down/js/qita-999/index.jpg)"></li>
<li style="background:url(d.lanrentuku.com/down/js/qita-1002/index.jpg)"></li>
<li style="background:url(d.lanrentuku.com/down/js/qita-1004/index.jpg)"></li>
</ul>
<p>点击后将li上的背景移至body中</p>
</div>
$(function(){

$("#BackBox ul li").live("click",function(){
var Back = $(this).css("background-image");
alert(Back);
$("body").css("b姬饥灌渴弑韭鬼血邯摩ackground",Back);
});

});


三.wordpress 如何添加如下网页的JS动态背景?200分

<!doctype html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=1024" /><meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7, IE=9" /><title>动态背景演示</title><link type="text/css" rel="stylesheet" href="sqimg.qq.com/..._0.css" /></head><body id="page0"><div class="opbg"></div><div id="container" class="mpage"><div id="anitOut" class="anitOut"></div></div><!--这里添加你自己的内容--><script src="sqimg.qq.com/...min.js"></script><script type籂储焚肥莳堵锋瑟福鸡="text/javascript" src="sqimg.qq.com/...pc7.js"></script></body></html>楼主可直接复制上面的代码另存为HTML,可看效果,请采纳。

查看"JavaScript"分类更多问题

回顶部↑

四.谁知道qq官网上的这个动态背景效果怎么实现的?

后台就是引用的这个文件
http担盯曹故丨嘎查霜肠睛:/...cav.js


五.用Js或者jq隔一段时间就改变body的背景图片或者背景颜色。。。???

复制以下代码。。。。看效果!!
<script type="text/javascript">//<![CDATA[var currentIndex = 0;function changeBg(){ //定义要切换的背景图片,双引号里面"1.jpg","2.jpg","3.jpg","4.jpg",可以放任意多个用,隔开 var bgImgs = ["1.jpg","2.jpg","3.jpg","4.讥俯罐谎忒荷闺捅酣拉jpg"]; if (currentIndex >= bgImgs.length) currentIndex = 0; var obj = document.getElementsByTagName("body")[0]; obj.style.backgroundImage="url("+bgImgs[currentIndex]+")"; currentIndex += 1; }setInterval("changeBg()", 3000); //设定定时切换,单位为毫秒这里是3000 毫秒//]]></script>


六.js能改变div的背景图片吗

document.getElementById("divId").style.backgroundImage="url(bg_1.gif)";
backgroundImage中的&quo常丹败柑汁纺伴尸宝建t; I "是大写的


七.在js中,怎样让插入的背景颜色产生动画效果?

<img id = 'a'>

onmousemove="document.getElementById(肌肠冠段攉灯圭犬氦华'a').style.display = 'none';" onmouseout="document.getElementById('a').style.display = '';"

img里放这两句onmousemove,onmouseout我这里放的是隐藏显示,你改成换背景就行


八.JS/Jquery,如何实现背景图片的更换

你控件和需要换主题的页面在同一个页面嘛?
如果在同一个页面是可以换的,不同页面的话就要通过后台程序才能还了。
如果是同一个页矗储避肥篆堵遍瑟拨鸡面
你只需要用
$(body).css("background-image","路径")


九.如何利用js动态改变body的背景图片?想要个简单的个例子?

在随便哪个按钮的onclick中加上这个方法:

functio丹筏草禾禺鼓碴态厂卡n chgBg() {
document.body.style.background = "url('images/bg1.jpg')";
}

js 动态背景效果 javascript实现网页背景图跟随效果由美文导刊网(www.eorder.net.cn)收集整理,转载请注明出处!原文地址http://www.eorder.net.cn/pic59113/

文章评论
Copyright © 2006 - 2016 www.eorder.net.cn All Rights Reserved
美文导刊网 版权所有