jQuery+PHP打造滑动开关效果


Posted in Javascript onDecember 16, 2014

本文介绍了使用jQuery、PHP和MySQL实现类似360安全卫士防火墙开启关闭的开关,可以将此功能应用在产品功能的开启和关闭功能上。

jQuery+PHP打造滑动开关效果

准备工作为了更好的演示本例,我们需要一个数据表,记录需要的功能说明及开启状态,表结构如下:

CREATE TABLE `pro` (  

  `id` int(11) NOT NULL auto_increment,  

  `title` varchar(50) NOT NULL,  

  `description` varchar(200) NOT NULL,  

  `status` tinyint(1) NOT NULL default '0',  

  PRIMARY KEY  (`id`)  

) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

你可以向表中pro插入几条数据。

index.php

我们要在页面显示相关功能列表,使用PHP读取数据表,并以列表的形式展示。

<?php   

   require_once('connect.php'); //连接数据库   

   $query=mysql_query("select * from pro order by id asc");   

   while ($row=mysql_fetch_array($query)) {   

   ?>   

   <div class="list">   

     <div class="fun_title">   

        <span rel="<?php echo $row['id'];?>" <?php if($row['status']==1){ ?>   

class="ad_on" title="点击关闭"<?php }else{?>class="ad_off" title="点击开启"<?php }?>></span>   

        <h3><?php echo $row['title']; ?></h3>   

     </div>   

     <p><?php echo $row['description'];?></p>   

   </div>   

 <?php } ?>

连接数据库,然后循环输出产品功能列表。

CSS

为了渲染一个比较好的页面外观,我们使用CSS来美化页面,使得页面更符合人性化。使用CSS,我们只需用一张图片来标识开关按钮。

jQuery+PHP打造滑动开关效果

.list{padding:6px 4px; border-bottom:1px dotted #d3d3d3; position:relative}   

.fun_title{height:28px; line-height:28px}   

.fun_title span{width:82px; height:25px; background:url(switch.gif) no-repeat;    

cursor:pointer; position:absolute; right:6px; top:16px}   

.fun_title span.ad_on{background-position:0 -2px}   

.fun_title span.ad_off{background-position:0 -38px}   

.fun_title h3{font-size:14px; font-family:'microsoft yahei';}   

.list p{line-height:20px}   

.list p span{color:#f60}   

.cur_select{background:#ffc}

CSS代码,我不想详述,提示下我们使用了一张图片,然后通过background-position来定位图片的位置,这是大多数网站使用的方法,好处咱就不说了。

jQuery

我们通过单击开关按钮,及时请求后台,改变对应的功能开关状态。这个过程是一个典型的Ajax应用。通过点击开关按钮,前端向后台PHP发送post请求,后台接收请求,并查询数据库,并将结果返回给前端,前端jQuery根据后台返回的结果,改变按钮状态。

$(function(){   

    //鼠标滑向换色   

    $(".list").hover(function(){   

        $(this).addClass("cur_select");   

    },function(){   

        $(this).removeClass("cur_select");   

    });   

    //关闭   

    $(".ad_on").live("click",function(){   

        var add_on = $(this);   

        var status_id = $(this).attr("rel");   

        $.post("action.php",{status:status_id,type:1},function(data){   

            if(data==1){   

                add_on.removeClass("ad_on").addClass("ad_off").attr("title","点击开启");   

            }else{   

                alert(data);   

            }   

        });   

    });   

    //开启   

    $(".ad_off").live("click",function(){   

        var add_off = $(this);   

        var status_id = $(this).attr("rel");   

        $.post("action.php",{status:status_id,type:2},function(data){alert(data);     

            if(data==1){   

                add_off.removeClass("ad_off").addClass("ad_on").attr("title","点击关闭");   

            }else{   

                alert(data);   

            }   

        });   

    });   

});

说明,代码中,首先实现了鼠标滑向功能列表换色的功能(详见demo),然后就是单击开关按钮,向后台action.php发送Ajax请求,提交的参数是对应功能的id和type,用于后台区分请求的是哪个功能和请求的类型(开启和关闭)。其实,大家稍微留神,可以看出,根据Ajax请求成功返回结果后,开关按钮动态改变样式,实现改变开关状态的功能。

action.php

后台action.php接收到前端的请求,根据参数执行SQL语句,更新对应功能的状态,成功后将结果返回给前端,请看代码:

require_once('connect.php');   

$id = $_POST['status'];   

$type = $_POST['type'];   

if($type==1){ //关闭   

    $sql = "update pro set status=0 where id=".$id;   

}else{ //开启   

    $sql = "update pro set status=1 where id=".$id;   

}   

$rs = mysql_query($sql);   

if($rs){   

    echo '1';   

}else{   

    echo '服务器忙,请稍后再试!';   

}

结束语通过本文您可以熟练掌握ajax在WEB开发中的应用,并能快速的应用到您的项目中。将一如既往的为广大开发者提供更具实用性的应用,致力于WEB前端技术的应用。

Javascript 相关文章推荐
IE不出现Flash激活框的小发现的js实现方法
Sep 07 Javascript
jquery图片放大镜功能的实例代码
Mar 26 Javascript
简单时间提示DEMO从0开始一直进行计时
Nov 19 Javascript
JS中改变this指向的方法(call和apply、bind)
Mar 26 Javascript
jQuery插件uploadify实现ajax效果的图片上传
Jun 18 Javascript
微信小程序 MD5的方法详解及实例代码
Mar 10 Javascript
webpack css加载和图片加载的方法示例
Sep 11 Javascript
通过实践编写优雅的JavaScript代码
May 30 Javascript
JS动态显示倒计时效果
Dec 12 Javascript
浅谈JavaScript中你可能不知道URL构造函数的属性
Jul 13 Javascript
快速解决vue2+vue-cli3项目ie兼容的问题
Nov 17 Vue.js
JavaScript中的几种继承方法示例
Dec 06 Javascript
javascript进行四舍五入方法汇总
Dec 16 #Javascript
javascript 判断整数方法分享
Dec 16 #Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
Dec 16 #Javascript
jquery队列函数用法实例
Dec 16 #Javascript
JQuery仿小米手机抢购页面倒计时效果
Dec 16 #Javascript
jQuery实现数字加减效果汇总
Dec 16 #Javascript
javascript使用switch case实现动态改变超级链接文字及地址
Dec 16 #Javascript
You might like
PHP获取网页标题的3种实现方法代码实例
2014/04/11 PHP
PHP5.3安装Zend Guard Loader图文教程
2014/09/29 PHP
PHP发送短信代码分享
2015/08/11 PHP
PHP实现Huffman编码/解码的示例代码
2018/04/20 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
2018/10/16 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
HTML5使用DeviceOrientation实现摇一摇功能
2015/06/05 Javascript
jQuery实现信息提示框(带有圆角框与动画)效果
2015/08/07 Javascript
JS动态插入并立即执行回调函数的方法
2016/04/21 Javascript
AngularJS中的API(接口)简单实现
2016/07/28 Javascript
利用JavaScript阻止表单提交的两种方法
2016/08/11 Javascript
jquery Banner轮播选项卡
2016/12/26 Javascript
js实现tab选项卡切换功能
2017/01/13 Javascript
如何用js判断dom是否有存在某class的值
2017/02/13 Javascript
详解Vue.js基于$.ajax获取数据并与组件的data绑定
2017/05/26 Javascript
Three.js实现浏览器变动时进行自适应的方法
2017/09/26 Javascript
深入理解js A*寻路算法原理与具体实现过程
2018/12/13 Javascript
在vue中利用全局路由钩子给url统一添加公共参数的例子
2019/11/01 Javascript
Vue快速实现通用表单验证的方法
2020/02/24 Javascript
JSON获取属性值方法代码实例
2020/06/30 Javascript
python 系统调用的实例详解
2017/07/11 Python
Python使用getpass库读取密码的示例
2017/10/10 Python
Python xlwt设置excel单元格字体及格式
2020/04/18 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
2019/01/04 Python
查看keras各种网络结构各层的名字方式
2020/06/11 Python
利用python实现后端写网页(flask框架)
2021/02/28 Python
德国PC硬件网站:CASEKING
2016/10/20 全球购物
美国婴儿服装购物网站:Gerber Childrenswear
2020/05/06 全球购物
什么是数据抽象
2016/11/26 面试题
认识深刻的检讨书
2014/02/16 职场文书
少先队学雷锋活动月总结
2014/03/09 职场文书
卖房协议书
2014/04/11 职场文书
地球一小时倡议书
2014/04/15 职场文书
2016猴年春节问候语
2015/11/11 职场文书
MySQL如何使用使用Xtrabackup进行备份和恢复
2021/06/21 MySQL
MySQL 数据库范式化设计理论
2022/04/22 MySQL