展开收起播放列表

//播放器关闭展开播放列表  by sunhw
    (function() {
        function PlayFold( option ) {
            this.option = T.object.extend( {
                root           : ‘‘,
                foldBtn        : ‘‘,
                playListLayout : ‘‘,
                packupWrap : ‘‘
            }, option || {} );
            this.init();
        }

PlayFold.prototype.changePlayBox = function( ags ) {
            var self = this;
            self.ags = ags || {};
            if ( self.ags.btnClass == false ) {
                self.fewer();
            } else {
                self.unfold();
            }
            /* 广播播放器列表展开收起 */
            ( self.ags.btnClass == false ) ? T.observer.send( F.EventCenter.PLAYLIST_COLLAPSE ) : T.observer.send( F.EventCenter.PLAYLIST_EXPAND );
        };
        PlayFold.prototype.fewer = function() {
            var self = this;
            F.tween( self.option.playListLayout, F.math.tweener.easeInExpo, 0.2, { right : -350 }, function() {
                setTimeout(function() {
                    T.dom.addClass( self.option.root, ‘maxbox‘ );
                }, 0 );
            } );
            T.dom.setStyles(self.option.packupWrap, { ‘width‘ : 30, ‘right‘: 0});
            T.dom.addClass( self.foldBtn, ‘unfold‘ );
        };
        PlayFold.prototype.unfold = function() {
            var self = this;
            F.tween( self.option.playListLayout, F.math.tweener.easeInOutCubic, 0.2, { right : 0 }, function() {
                setTimeout(function() {
                    T.dom.setStyles(self.option.packupWrap, {‘width‘ : 12, ‘right‘: 318 });
                    T.dom.removeClass( self.foldBtn, ‘unfold‘ );
                    T.dom.removeClass( self.option.root, ‘maxbox‘ );
                }, 0 );
            } );
        };
        PlayFold.prototype.init = function() {
            var self = this;
            if ( mp.visible ) { return; }
            self.root = T.get( self.option.root );
            self.foldBtn = T.get( self.option.foldBtn );
            //点击展开收起按钮,传参当前的pageWidth,按钮是否有unfold CLASSNAME
            T.on( self.foldBtn, ‘click‘, function() {
                self.changePlayBox( {
                    btnClass : T.dom.hasClass( self.foldBtn, ‘unfold‘ )
                } );
            } );
            T.observer.add(‘playEvent.start_play‘, function(){
                self.fewer();
            });
        };
        new PlayFold( {
            root           : ‘video-play-box‘,
            foldBtn        : ‘pack-up-btn‘,
            playListLayout : ‘play-list-layout‘,
            packupWrap : ‘packup-wrap‘
        } );
    })();

/*
    onoff.js
    by sunhw 重写
*/
T.dom.ready(function(){
    //详情收起
    (function(){
        var showMoreBtn = T.query(‘.dirtext .show-morebtn‘)[0];
        var contText = T.query(‘.dirtext span‘);
        if(!showMoreBtn || !contText){
            return;
        }
        var bind = function(e){
            T.event.stop(T.event.get(e));
            var isHasClass = T.dom.hasClass(showMoreBtn, ‘packup-morebtn‘);
            if(!isHasClass){
                showMoreBtn.innerHTML = ‘收起‘;
                T.addClass(showMoreBtn, ‘packup-morebtn‘);
                T.dom.setStyle(contText[0], ‘display‘, ‘none‘);
                T.dom.setStyle(contText[1], ‘display‘, ‘inline‘);
            }else{
                showMoreBtn.innerHTML = ‘详情‘;
                T.removeClass(showMoreBtn, ‘packup-morebtn‘);
                T.dom.setStyle(contText[0], ‘display‘, ‘inline‘);
                T.dom.setStyle(contText[1], ‘display‘, ‘none‘);
            }
        };
        T.un(showMoreBtn, ‘click‘, bind);
        T.on(showMoreBtn, ‘click‘, bind);
    })();
    //播放页分享展开收起
    (function(){
        var sitesMoreBtn = T.get(‘sites-more-btn‘);
        var parentNode = sitesMoreBtn && sitesMoreBtn.parentNode.parentNode;
        if(!sitesMoreBtn || !parentNode) {
            return;
        }
        var bind = function(e){
            T.event.stop(T.event.get(e));
            ( T.dom.hasClass(parentNode, ‘sites-selected‘) ) ? T.dom.removeClass(parentNode, ‘sites-selected‘) : T.dom.addClass(parentNode, ‘sites-selected‘);
        };
        var unbind = function(){
            if(T.dom.hasClass(parentNode, ‘sites-selected‘)){
                T.dom.removeClass(parentNode, ‘sites-selected‘);
            }
        };
        T.un(sitesMoreBtn, ‘click‘, bind);
        T.un(document, ‘click‘, unbind);
        T.on(sitesMoreBtn, ‘click‘, bind);
        T.on(document, ‘click‘, unbind);
    })();
});

时间: 2024-10-28 10:42:42

展开收起播放列表的相关文章

Javascript展开收起

<!DOCTYPE html><html><head><meta charset="utf-8" /><title>展开收起</title><style type="text/css">body{ margin: 0 auto; padding: 0px;}#pn{ background: #e8e8e8; width: 600px; height: auto; margin: 0

展开-收起

1.需求,展开-收起 html代码: css中默认pr_list"是隐藏的. 一开始js是这样子写的 出现问题:出现的bug,就是只能点击一次,点第二次就不行了. 分析问题:收起来后,那句 "查看楼盘简介" 是我后来手动插进去的,还没有绑定任何事件,与我前面绑定事件的元素,不是一个东西: 解决问题:

JS+CSS实现可展开/收起的QQ在线客服悬浮代码

<!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> <title>JS+CSS实现可展开/收起的QQ在线客服

HTML-003-模拟IDE代码展开收起功能简单示例

当先我们在日常的编程开发工作中使用编程工具(例如 Eclipse.Sublime 等等)都有相应的代码折叠展开功能,如下图所示,极大的方便了我们的编码工作. 同时,我们在日常的网页,尤其的广大的博客网站的源码展示部分,都采用了此种显示方式,如下图所示(示例引用位置:008-Selenium 操作下拉列表实例-Select): 这么做的意义何在呢?我觉得其实际应用有如下两种: 内容的展示和隐藏:将用户最关心.感兴趣的内容展示给用户,若用户想继续深入了解,则可通过点击展示或隐藏按钮达到查看.隐藏内容

实现列表展开收起效果

$(".btn").click(function () {$(this).parents("当前元素最外层div的class").toggleClass("showDiv").siblings().removeClass("showDiv");});css:.最外层div class .需要收起展开的div的class{display: none;}.showDiv .需要收起展开的div的class{display: blo

Jquery 展开收起

需求:点击展开显示详细内容,收起后隐藏内容 实现: Index.cshtml 显示 ... ... <tr> <td> <a asp-action="Edit" asp-route-id="@item.Nid" asp-route-lcid="@item.Lcid">编辑</a> | <a asp-action="Delete" asp-route-id="@it

实现列表二级展开/收起/选择

代码地址如下:http://www.demodashi.com/demo/12628.html 1.先看效果图 2.实现原理 1)通过对UITableView进行分组来实现展开收起的功能: 2)通过cell的model和组model中的是否选中和是否展开的标记字段来记录并实现展开/收起/选择的功能: 3.代码实现 1)创建cell的model类并添加如下属性: // 标记是否选中 @property (nonatomic, assign) BOOL isSelect; // 文字 @proper

iOS 文本展开收起

经常会遇到类似微信的展开收起,本身这个逻辑是比较清晰的,动态变换文本的高度就可以,但实际操作过程中,却会有各种坑,最令人蛋疼的就是抖动,下面简述下自己的采坑之路 一.给定文本一个限定高度(比如:90),小于等于90就取90,大于90默认收起,点击展开取真实高度,点击收起,取90.这样的做法是直接拿到内容就计算出高度,变高度. 以下5种方法经测验方案5抖动最小属于偶发性质且很不明显(抖动的根本原因在于文本的高度是可变的,在偶发情况下可能刚好使cell的高度在一个临界值:比如差零点几个像素之类的,然

Vue 实现点击展开/收起 功能

Vue 展开收起功能实现 之前写项目的时候提到了一个需求 展开/收起 所有内容的需求 .因之前一值是重构,自己写功能还是比较少的,于是网上搜了一下,发现很多东西其实是jq的功能 虽然可以拿过来用,但是还是想使用vue 写出原汁原味的模块 demo: <div :class="is_show ? 'new_detail' : 'work_detail'"> <!-- 这里是操作的div 包含的文字 --> <!-- 这里的is--show 就是true/fa