Bootstrap框架结合jQuery仿百度换肤功能实例解析


Posted in Javascript onSeptember 17, 2016

换肤功能的应用很广,不管是搜索界面还是普通的管理界面等等,都可以进行设计并且应用换肤功能,起到更好的用户体验。 

今天仿造百度的换肤功能,实现了基本的换肤功能,接下来将会为大家介绍如何实现。在设计界面的过程当中,我采用了Bootstrap框架,以便更好的适应屏幕。(当然也是为了更好的熟悉使用这个框架,大家别忘了把Bootstrap框架的css和js包引进来哦)。在创建项目时最好可以分别将css、js、images分开。 

首先是布局,我只是布局了一下换肤的简单界面,其中就是一些按钮和图片,为了简单实现,所以换肤的背景图片都是直接选定的,利用ul li标签直接布局,当然也可以用原始的div布局。 

<div class="container-fluid b-icons">
 <div class="b-icons-item" id="b-box"><a href="javascript:;">宝箱</a></div>
 <div class="b-icons-item" id="b-change"><a href="javascript:;">换肤</a></div>
 <div class="b-icons-item" id="b-msg"><a href="javascript:;">消息</a></div>
 </div>
 <div class="s-icons">
 <div class="s-icons-bottom">
  <div class="icon-items">
  <ul>
   <li><a href="javascript:;">热门</a></li>
   <li><a href="javascript:;">游戏</a></li>
   <li><a href="javascript:;">卡通</a></li>
   <li><a href="javascript:;">明星</a></li>
   <li><a href="javascript:;">风景</a></li>
   <li><a href="javascript:;">简约</a></li>
   <li><a href="javascript:;">小清新</a></li>
   <li><a href="javascript:;">自定义</a></li>
  </ul>
  </div>
  <div class="icon-up">
  <div>
   <i class="glyphicon glyphicon-arrow-up"></i>
   <a href="javascript:;">收起</a>
  </div>
  </div>
  <div style="clear: both"></div>
  <div class="icon-bottom">
  <ul>
   <li class="col-lg-1 col-lg-offset-1 dpic"><img src="images/0.jpeg" title="背景图"></li>
   <li class="col-lg-1 dpic"><img src="images/1.jpeg" title="背景图"></li>
   <li class="col-lg-1 dpic"><img src="images/2.png" title="背景图"></li>
   <li class="col-lg-1 dpic"><img src="images/3.jpg" title="背景图"></li>
   <li class="col-lg-1 dpic"><img src="images/4.jpg" title="背景图"></li>
   <li class="col-lg-1 dpic"><img src="images/5.jpg" title="背景图"></li>
   <li class="col-lg-1 dpic"><img src="images/6.jpeg" title="背景图"></li>
  </ul>
  </div>
 </div>
 </div>

接下来是如何修饰外观,我比较喜欢简单的界面。

附上css代码: 

*{
 margin:0px;
 padding:0px;
 font-family: "Microsoft Yahei", Helvetica, sans-serif, Lato;
}
.b-icons{
 background-color: #569caa;
 height: 32px;
 line-height: 32px;
}
.b-icons .b-icons-item{
 float: left;
}
.b-icons #b-box{
 margin-left: 10%;
}
.b-icons #b-change,.b-icons #b-msg{
 margin-left:20px;
}
.b-icons #b-box,.b-icons #b-change,.b-icons #b-msg{
 text-decoration:underline;
}
.b-icons #b-box a,.b-icons #b-change a,.b-icons #b-msg a{
 font-size: 12px;
 color:#fff;
}
.s-icons{
 width: 100%;
 position: fixed;
 left: 0px;
 top:0px;
 background-color: #fff;
 height: 175px;
 display: none;
}

.s-icons .s-icons-bottom{
 width: 100%;
 height: 35px;
 border-bottom: 1px solid #808080;
}
.s-icons .icon-items{
 margin-left:15%;
}
.s-icons .icon-items>ul li{
 height: 30px;
 line-height: 30px;
 float: left;
 list-style: none;
 margin-left:10px;
 margin-right:10px;
}
.s-icons .icon-items a{
 color:#666;
}
.s-icons .icon-up{
 line-height: 30px;
 float: right;
 margin-right:10%
}
.s-icons .icon-up>div a,.s-icons .icon-up>div i{
 color: #2544ff;
}
.s-icons .icon-bottom{
 width: 100%;
 height: 100px;
 margin-left: 15%;
 margin-top:20px;
}
.s-icons .icon-bottom .dpic{
 text-align: center;
 list-style: none;
 margin-left: 5px;
}
.s-icons .icon-bottom .dpic img{
 width: 120px;
 height:80px;
}

最后一部分是比较重要的,即如何撰写jquery代码实现图片的切换。

在点击换肤的时候,会切换一个界面,里面含有皮肤的分类和收起按钮,当点击收起时,界面会有收起的效果,想要实现这个功能,有三种方式,可以自行选择一种方式: 

1)slidedown()和slideup(); 

2)show()和hide(); 

3)fadeOut()和fadeIn(). 

在这里我比较喜欢第二种方式,所以代码中用的是第二种方式。 

点击图片如何实现背景图片能够进行切换呢,其实就只是涉及到一个样式的处理,即如何改变背景图片,以及背景图片的一个显示问题。那么问题来了,要如何获取当前点击或者选中的图片呢,可以通过获取img中的src属性,从而获得图片的路径,jquery可以用过attr()方法来进行获取。即: 

 var src = $(this).attr("src");

this表示的是当前鼠标点击图片的对象。

为了刷新页面不改变背景图片,我采用了html5的localStorage进行存储,这个方法最常用的是getItem()和setItem()方法: 

var bgig = localStorage.getItem("bgig");

localStorage.setItem("bgig", src);

整个功能的实现过程如下:

$(function () {
 var bgig = localStorage.getItem("bgig");
 if (bgig == null) {
 $("body").css({ "background-image": "url(images/1.jpeg)", "background-size": "cover" });
 }
 else {
 $("body").css({ "background-image": "url(" + bgig + ")", "background-size": "cover" });
 }

 $("#b-change a").click(function () {
 $(".s-icons").show(500);
 });
 $(".icon-up a").click(function () {
 $(".s-icons").hide(500);
 });

 $(".dpic img").click(function () {
 var src = $(this).attr("src");
 $("body").css({ "background-image": "url(" + src + ")","background-repeat":"no-repeat","background-size":"100%" });
 localStorage.setItem("bgig", src);
 });

});

效果图:

Bootstrap框架结合jQuery仿百度换肤功能实例解析

Bootstrap框架结合jQuery仿百度换肤功能实例解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

如果大家还想深入学习,可以点击这里进行学习,再为大家附两个精彩的专题:Bootstrap学习教程 Bootstrap实战教程

Javascript 相关文章推荐
js渐变显示渐变消失示例代码
Aug 01 Javascript
JS自调用匿名函数具体实现
Feb 11 Javascript
jQuery实现可关闭固定于底(顶)部的工具条菜单效果
Nov 06 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(二)
Dec 10 Javascript
Bootstrap每天必学之弹出框(Popover)插件
Apr 25 Javascript
JS实现自动阅读单词(有道单词本添加功能)
Nov 14 Javascript
jQuery拖拽通过八个点改变div大小
Nov 29 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
Jun 17 Javascript
JavaScript面向对象继承原理与实现方法分析
Aug 09 Javascript
JavaScript 性能提升之路(推荐)
Apr 10 Javascript
vue集成chart.js的实现方法
Aug 20 Javascript
javascript实现点击星星小游戏
Dec 24 Javascript
Bootstrap响应式侧边栏改进版
Sep 17 #Javascript
H5用户注册表单页 注册模态框!
Sep 17 #Javascript
JS Canvas定时器模拟动态加载动画
Sep 17 #Javascript
JavaScript职责链模式概述
Sep 17 #Javascript
JavaScript类的写法
Sep 17 #Javascript
使用JQuery选择HTML遍历函数的方法
Sep 17 #Javascript
jQuery leonaScroll 1.1 自定义滚动条插件(推荐)
Sep 17 #Javascript
You might like
解析VS2010利用VS.PHP插件调试PHP的方法
2013/07/19 PHP
php 修改上传文件大小限制实例详解
2016/10/23 PHP
Zend Framework校验器Zend_Validate用法详解
2016/12/09 PHP
js调用flash的效果代码
2008/04/26 Javascript
JQuery.uploadify 上传文件插件的使用详解 for ASP.NET
2010/01/22 Javascript
JavaScript 格式字符串的应用
2010/03/29 Javascript
解析ScrollPic在ie8下只滚动一遍,然后变为空白 ie6,ie7,chrome,firefox正常
2013/06/26 Javascript
jquery动态加载select下拉框示例代码
2013/12/10 Javascript
Javascript中实现String.startsWith和endsWith方法
2015/06/10 Javascript
一道常被人轻视的web前端常见面试题(JS)
2016/02/15 Javascript
简单谈谈javascript中this的隐式绑定
2016/02/22 Javascript
JS区分浏览器页面是刷新还是关闭
2016/04/17 Javascript
JS获取日期的方法实例【昨天,今天,明天,前n天,后n天的日期】
2017/09/28 Javascript
jquery+css3实现熊猫tv导航代码分享
2018/02/12 jQuery
微信小程序分享海报生成的实现方法
2018/12/10 Javascript
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
2019/04/24 Javascript
js函数和this用法实例分析
2020/03/13 Javascript
javascript实现简单搜索功能
2020/03/26 Javascript
[01:19:54]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#1Alliance VS EHOME
2016/03/03 DOTA
Python使用xlrd模块操作Excel数据导入的方法
2015/05/26 Python
在Ubuntu系统下安装使用Python的GUI工具wxPython
2016/02/18 Python
Python实现Linux中的du命令
2017/06/12 Python
Python进度条实时显示处理进度的示例代码
2018/01/30 Python
处理python中多线程与多进程中的数据共享问题
2019/07/28 Python
Python ConfigParser模块的使用示例
2020/10/12 Python
Python: glob匹配文件的操作
2020/12/11 Python
html5 标签
2009/07/16 HTML / CSS
HTML5单选框、复选框、下拉菜单、文本域的实现代码
2020/12/01 HTML / CSS
Lookfantastic法国官网:英国知名美妆购物网站
2017/10/28 全球购物
电大学习个人自我评价范文
2013/10/04 职场文书
元旦活动感言
2014/03/08 职场文书
优秀会计求职信
2014/07/04 职场文书
新店开张活动方案
2014/08/24 职场文书
党员批评与自我批评(5篇)
2014/09/23 职场文书
2015年节能降耗工作总结
2015/05/22 职场文书
运动会开幕式新闻稿
2015/07/17 职场文书