当前位置 : 主页 > 网络编程 > JavaScript >

鼠标悬浮展示弹框(angularjs)

来源:互联网 收集:自由互联 发布时间:2021-06-28
angularDirective.js /** * 调用此指令的方法: * * * * 如果多出引用此指令,可以在传值的时候传递一个JSON对象过来用于显示窗口内容 */(function() { angular.module("app.core") .directive('oneName', function
angularDirective.js
/**
 *  调用此指令的方法:
 *  
 
 *  
 *
 *  如果多出引用此指令,可以在传值的时候传递一个JSON对象过来用于显示窗口内容
 */
(function() {
    angular.module("app.core")
        .directive('oneName', function($q, $http, ENV, RequestUrls) {
            return {
                restrict: 'EA', //可以通过以下方式来调用指令:E(元素),A(属性),C(类),M(注释)
                template: '
 
  
  
   
', replace: true, scope: { icon: '@icon', //图标 radius: '@radius', //半径 image: '@image', //图片 right: '@right', lineHeight: '@lineHeight', fontSize: '@fontSize', color: '@color', background: '@background', //可以给styleTwo用 }, transclude: true, //如果不想让指令内部的内容被模板替换,可以设置这个值为true link: function(scope, element, attr) { //链接函数负责注册DOM事件和更新DOM scope.styleOne = { "width": scope.radius + "px", "height": scope.radius + "px", "-moz-border-radius": scope.radius / 2 + "px", "-webkit-border-radius": scope.radius / 2 + "px", "border-radius": scope.radius / 2 + "px", "margin-right": scope.right + "px", "line-height": scope.lineHeight + "px", "font-size": scope.fontSize + "px", "color": scope.color, "cursor": "pointer", //鼠标放上去是手的图标 }; //弹出框的css参数 scope.styleTwo = { "border": "1px #0099ff solid", "height": "180px", "width": "300px", "color": "black", "background": "white", "margin-top": "10px", "margin-left": "-120px", "position": "absolute", "z-index": "9999", }; scope.showDetail = false; //窗体是否可见ng-if scope.systemMessages = []; scope.systemMessagesLength = 0; scope.openShowDetail = function() { //鼠标进入和移除都调用的此方法,到时候需要判断事件后决定是否调用获取数据的方法 //鼠标焦点事件,此处改变ng-if //调用获取数据的接口 var params = { //准备参数 "page": 1, "size": 10 }; requestData(params).success(function(data) { //调用了下面那个方法 if (data.code === 'SUCCESS') { scope.systemMessagesLength = data.data.total; scope.systemMessages = data.data.list; console.log(data); } else { console.log(data); } }).error(function(data) { console.log(data); alert("无法获取消息,请重试"); }); //显示框体 scope.showDetail = !scope.showDetail; }; //暂时写的替代factory.js的方法 var requestData = function(params) { //异步 var deferred = $q.defer(); var promise = deferred.promise; $http.post(ENV.host + RequestUrls.systemMessageQuery, params, ENV.headers) .success(function(data) { if (data.code === 'SUCCESS') { deferred.resolve(data); } else { deferred.resolve(data); } }).error(function(data) { deferred.reject(data); }); promise.success = function(fn) { promise.then(fn); return promise; }; promise.error = function(fn) { promise.then(null, fn); return promise; }; return promise; }; } } }); })();
网友评论