设为首页 收藏本站
查看: 827|回复: 0

[经验分享] 利用jQuery定制Sharepoint的WebPart样式

[复制链接]

尚未签到

发表于 2015-9-27 07:16:47 | 显示全部楼层 |阅读模式
  来啦,美工大哥要把每个WebPart做成这样(里面的先不管,咱们暂时focus在边框和标题栏上):
DSC0000.jpg
  怎么搞?改CSS?呵呵,行吗?枪毙掉了
  那怎么办,有办法,有办法,先在moss里面把webpart的边框和标题去掉,然后一个个都用代码来做,oh, my god, 数数咱们网站有多少个webpart吧,我欲哭无泪啊.....

  

  嘿嘿,先别哭!
  也不就是一个个的webpart吗?看看css中的定义,哦,每个webpart的标题的class都是ms-wpheader,呵呵,想法有了,先通过这个找到每个webpart的所在的table,然后用javascript来生成边框,再把标题改掉;好,美工大哥,再配合一下,帮我做个边框吧,咱不搞高深的,搞个table, 3行3列,中间是webpart的内容,其他的你用几个图凑个边框吧;对啦,别走,还有标题两边的小圆弧,kao,有意见,谁让你这么设计的?

  下面写js了,core.js? 乖乖那个隆地冬,那么长,不想看了,也不想利用他啥了,呵呵,用个库吧,对啦,jQuery,这小玩意还真好用,20多K,就用他了,再说了,有了他,以后有空还方便顺便再给咱们的moss来点ajax啥的.
  1. 废话少说,先把jQuery加进去吧,好,default.master, <script src="jquery.js" type="text/javascript" /> OK.
  2. 还是default.master,开始写脚本啦

  $(function(){
  ...}); 在这个里面写吧;干嘛的?查查jQuery手册哦
  3. 先找到webpart的大table吧,标题就是第一行
  $("tr.ms-WPHeader").parent().parent().parent().parent().parent().parent(); //这个是要操作webpart的table
  4. 先搞边框

DSC0001.gif DSC0002.gif f_SetBorder
function f_SetBorder(elem) {
        
        var id = f_GenerateTempDivId();
        $(elem).wrap("<div id='" + id + "'></div>");
        var html = $("#" + id).html();
        html = "<table width='100%' border='0' align='center' cellpadding='0' cellspacing='0'><tr><td class='webpart_toplbg'></td><td class='webpart_topbg'></td><td class='webpart_toprbg'></td></tr> <tr><td class='webpart_midlbg'>&nbsp;</td><td valign='top' class='webpart_midbg'>"
                + html
                + "</td>  <td class='webpart_midrbg'>&nbsp;</td> </tr> <tr>   <td class='webpart_botlbg'>&nbsp;</td>   <td class='webpart_botbg'>&nbsp;</td>    <td class='webpart_botrbg'>&nbsp;</td>  </tr></table>";
        $("#" + id).html(html);
    }   
  5. 再搞标题,这个烦了,逻辑是先找到原来的标题,如果有连接的,生成的tr中就有后面的更多,否则就没有,再把老的标题隐藏,上代码吧

f_setHeader
function f_setHeader(elem) {
        var td = $("td:eq(0)", elem);
        var aLink = $("A", td);
        var html;
        if (aLink.length == 1) {
            var u = aLink.attr("href");
            //html = "<tr><td>" + td.text() + "</td><td><a href='" + u + "'><span style='color:#FFFFFF'>更多</span></a></td></tr> ";
            html = "<tr><td colspan=2 class='barnner_bg'>"
                + "<table width='100%' border='0' cellspacing='0' cellpadding='0' align='center'>"
                + "<tr> <td class='barnner_lbg'>&nbsp;</td>"
                + "<td align='center' class='barnner_bg'><table width='100%' border='0' cellspacing='2' cellpadding='0'>"
                + "    <tr> "
                + "      <td width='85%' class='list-title'>" + td.text() + "</td>"
                   + "   <td width='15%' align='right'><a href='" + u + "' class='more'><span style='color:#FFFFFF'>更多</span></a></td>"
                   + " </tr>"
                   + "</table></td>"
                + "<td class='barnner_rbg'>&nbsp;</td>"
              + "</tr></table> "
                +"</td></tr>";
        } else {
            //html = "<tr><td>" + td.text() + "</td><td>&nbsp;</td></tr>";
                        html = "<tr><td colspan=2 class='barnner_bg'>"
                + "<table width='100%' border='0' cellspacing='0' cellpadding='0' align='center'>"
                + "<tr> <td class='barnner_lbg'>&nbsp;</td>"
                + "<td align='center' class='barnner_bg'><table width='100%' border='0' cellspacing='2' cellpadding='0'>"
                + "    <tr> "
                + "      <td width='85%' class='list-title'>" + td.text() + "</td>"
                   + "   <td width='15%' align='right'>&nbsp;</td>"
                   + " </tr>"
                   + "</table></td>"
                + "<td class='barnner_rbg'>&nbsp;</td>"
              + "</tr></table> "
                +"</td></tr>";

        }
        elem.hide();
        elem.before(html);
    }   
  6. 还有个函数,放在最前面吧,是生成id用的

Code
var _tempDivId = 1;

    function f_GenerateTempDivId() {
   
        _tempDivId++;
        return "TempDiv" + _tempDivId;
    }  

  7. 最后写好的jQuery load函数

Code
$(function() {
        $("tr.ms-WPHeader").each(function() {  
                var elem = $(this);
                f_setHeader(elem);
                elem = $(this).parent().parent().parent().parent().parent().parent(); //这个是webpart的table
                f_SetBorder(elem);
        });
    });  
  
  preview一下,OK? 啥,你的不正常,为啥?哦,原来是css那边的问题,晕,图片和css可是美工大哥做的,我可不能乱贴人家的劳动成果哦,自己搞一下吧.....
  
对啦,改了标题是有一些后果的哦,啥后果?改了你就知道啦...  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-119227-1-1.html 上篇帖子: 使用Sharepoint web应用程序用户满意度调查程序详解 下篇帖子: 在SharePoint 2013中配置Office Web Apps 2013遇到的问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表