热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

仿造百度换肤功能的实现

换肤功能的应用很广,不管是搜索界面还是普通的管理界面等等,都可以进行设计并且应用换肤功能,起到更好的用户体验。今天仿造百度的换肤功能,实现了基本的换肤功能,接下来将会为大家介绍如

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


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


首先是布局,我只是布局了一下换肤的简单界面,其中就是一些按钮和图片,为了简单实现,所以换肤的背景图片都是直接选定的,利用ul li标签直接布局,当然也可以用原始的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);
    });

});





推荐阅读
  • linux qt打开常用文件格式,设置Linux Qt文件默认打开方式为QtCreator
    Linux自定义文件打开方式也可参照文本抱歉,本文前段时间写的ubuntu下的Qt工程文件默认打开方式是不好用的,因为其他的文本文件也会受到影响,强迫症患者,每次打开Qt工程都是先 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • 基于移动平台的会展导游系统APP设计与实现的技术介绍与需求分析
    本文介绍了基于移动平台的会展导游系统APP的设计与实现过程。首先,对会展经济和移动互联网的概念进行了简要介绍,并阐述了将会展引入移动互联网的意义。接着,对基础技术进行了介绍,包括百度云开发环境、安卓系统和近场通讯技术。然后,进行了用户需求分析和系统需求分析,并提出了系统界面运行流畅和第三方授权等需求。最后,对系统的概要设计进行了详细阐述,包括系统前端设计和交互与原型设计。本文对基于移动平台的会展导游系统APP的设计与实现提供了技术支持和需求分析。 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • x86 linux的进程调度,x86体系结构下Linux2.6.26的进程调度和切换
    进程调度相关数据结构task_structtask_struct是进程在内核中对应的数据结构,它标识了进程的状态等各项信息。其中有一项thread_struct结构的 ... [详细]
  • fileuploadJS@sectionscripts{<scriptsrc~Contentjsfileuploadvendorjquery.ui.widget.js ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了css回到顶部按钮相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 国庆节到了,安利一个Android的自动动态授权插件
    Android的老铁都知道申请权限时,除了要在AndroidManifest添加权限,还需要在activity中通过requestpermission对 ... [详细]
  • 表单代码 ... [详细]
  • OrbitDBPeer 2 Peer Database using CRDTs
    2019独角兽企业重金招聘Python工程师标准Apeer-to-peerdatabaseforthedecentralizedwebOrbitDBisaserverless ... [详细]
author-avatar
萱璇妍幽
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有