⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 effects.js

📁 这是linux下ssl vpn的实现程序
💻 JS
📖 第 1 页 / 共 3 页
字号:
  return new Effect.Appear(element, { 

    duration: 0.4,

    from: 0,

    transition: Effect.Transitions.flicker,

    afterFinishInternal: function(effect) {

      new Effect.Scale(effect.element, 1, { 

        duration: 0.3, scaleFromCenter: true,

        scaleX: false, scaleContent: false, restoreAfterFinish: true,

        beforeSetup: function(effect) { with(Element) {

          [makePositioned,makeClipping].call(effect.element);

        }},

        afterFinishInternal: function(effect) { with(Element) {

          [hide,undoClipping,undoPositioned].call(effect.element);

          setStyle(effect.element, {opacity: oldOpacity});

        }}

      })

    }

  });

}



Effect.DropOut = function(element) {

  element = $(element);

  var oldStyle = {

    top: Element.getStyle(element, 'top'),

    left: Element.getStyle(element, 'left'),

    opacity: Element.getInlineOpacity(element) };

  return new Effect.Parallel(

    [ new Effect.Move(element, {x: 0, y: 100, sync: true }), 

      new Effect.Opacity(element, { sync: true, to: 0.0 }) ],

    Object.extend(

      { duration: 0.5,

        beforeSetup: function(effect) { with(Element) {

          makePositioned(effect.effects[0].element); }},

        afterFinishInternal: function(effect) { with(Element) {

          [hide, undoPositioned].call(effect.effects[0].element);

          setStyle(effect.effects[0].element, oldStyle); }} 

      }, arguments[1] || {}));

}



Effect.Shake = function(element) {

  element = $(element);

  var oldStyle = {

    top: Element.getStyle(element, 'top'),

    left: Element.getStyle(element, 'left') };

	  return new Effect.Move(element, 

	    { x:  20, y: 0, duration: 0.05, afterFinishInternal: function(effect) {

	  new Effect.Move(effect.element,

	    { x: -40, y: 0, duration: 0.1,  afterFinishInternal: function(effect) {

	  new Effect.Move(effect.element,

	    { x:  40, y: 0, duration: 0.1,  afterFinishInternal: function(effect) {

	  new Effect.Move(effect.element,

	    { x: -40, y: 0, duration: 0.1,  afterFinishInternal: function(effect) {

	  new Effect.Move(effect.element,

	    { x:  40, y: 0, duration: 0.1,  afterFinishInternal: function(effect) {

	  new Effect.Move(effect.element,

	    { x: -20, y: 0, duration: 0.05, afterFinishInternal: function(effect) { with(Element) {

        undoPositioned(effect.element);

        setStyle(effect.element, oldStyle);

  }}}) }}) }}) }}) }}) }});

}



Effect.SlideDown = function(element) {

  element = $(element);

  Element.cleanWhitespace(element);

  // SlideDown need to have the content of the element wrapped in a container element with fixed height!

  var oldInnerBottom = Element.getStyle(element.firstChild, 'bottom');

  var elementDimensions = Element.getDimensions(element);

  return new Effect.Scale(element, 100, Object.extend({ 

    scaleContent: false, 

    scaleX: false, 

    scaleFrom: 0,

    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},

    restoreAfterFinish: true,

    afterSetup: function(effect) { with(Element) {

      makePositioned(effect.element);

      makePositioned(effect.element.firstChild);

      if(window.opera) setStyle(effect.element, {top: ''});

      makeClipping(effect.element);

      setStyle(effect.element, {height: '0px'});

      show(element); }},

    afterUpdateInternal: function(effect) { with(Element) {

      setStyle(effect.element.firstChild, {bottom:

        (effect.dims[0] - effect.element.clientHeight) + 'px' }); }},

    afterFinishInternal: function(effect) { with(Element) {

      undoClipping(effect.element); 

      // IE will crash if child is undoPositioned first

      if(/MSIE/.test(navigator.userAgent)){

        undoPositioned(effect.element);

        undoPositioned(effect.element.firstChild);

      }else{

        undoPositioned(effect.element.firstChild);

        undoPositioned(effect.element);

      }

      setStyle(effect.element.firstChild, {bottom: oldInnerBottom}); }}

    }, arguments[1] || {})

  );

}

  

Effect.SlideUp = function(element) {

  element = $(element);

  Element.cleanWhitespace(element);

  var oldInnerBottom = Element.getStyle(element.firstChild, 'bottom');

  return new Effect.Scale(element, 0, 

   Object.extend({ scaleContent: false, 

    scaleX: false, 

    scaleMode: 'box',

    scaleFrom: 100,

    restoreAfterFinish: true,

    beforeStartInternal: function(effect) { with(Element) {

      makePositioned(effect.element);

      makePositioned(effect.element.firstChild);

      if(window.opera) setStyle(effect.element, {top: ''});

      makeClipping(effect.element);

      show(element); }},  

    afterUpdateInternal: function(effect) { with(Element) {

      setStyle(effect.element.firstChild, {bottom:

        (effect.dims[0] - effect.element.clientHeight) + 'px' }); }},

    afterFinishInternal: function(effect) { with(Element) {

        [hide, undoClipping].call(effect.element); 

        undoPositioned(effect.element.firstChild);

        undoPositioned(effect.element);

        setStyle(effect.element.firstChild, {bottom: oldInnerBottom}); }}

   }, arguments[1] || {})

  );

}



// Bug in opera makes the TD containing this element expand for a instance after finish 

Effect.Squish = function(element) {

  return new Effect.Scale(element, window.opera ? 1 : 0, 

    { restoreAfterFinish: true,

      beforeSetup: function(effect) { with(Element) {

        makeClipping(effect.element); }},  

      afterFinishInternal: function(effect) { with(Element) {

        hide(effect.element); 

        undoClipping(effect.element); }}

  });

}



Effect.Grow = function(element) {

  element = $(element);

  var options = Object.extend({

    direction: 'center',

    moveTransition: Effect.Transitions.sinoidal,

    scaleTransition: Effect.Transitions.sinoidal,

    opacityTransition: Effect.Transitions.full

  }, arguments[1] || {});

  var oldStyle = {

    top: element.style.top,

    left: element.style.left,

    height: element.style.height,

    width: element.style.width,

    opacity: Element.getInlineOpacity(element) };



  var dims = Element.getDimensions(element);    

  var initialMoveX, initialMoveY;

  var moveX, moveY;

  

  switch (options.direction) {

    case 'top-left':

      initialMoveX = initialMoveY = moveX = moveY = 0; 

      break;

    case 'top-right':

      initialMoveX = dims.width;

      initialMoveY = moveY = 0;

      moveX = -dims.width;

      break;

    case 'bottom-left':

      initialMoveX = moveX = 0;

      initialMoveY = dims.height;

      moveY = -dims.height;

      break;

    case 'bottom-right':

      initialMoveX = dims.width;

      initialMoveY = dims.height;

      moveX = -dims.width;

      moveY = -dims.height;

      break;

    case 'center':

      initialMoveX = dims.width / 2;

      initialMoveY = dims.height / 2;

      moveX = -dims.width / 2;

      moveY = -dims.height / 2;

      break;

  }

  

  return new Effect.Move(element, {

    x: initialMoveX,

    y: initialMoveY,

    duration: 0.01, 

    beforeSetup: function(effect) { with(Element) {

      hide(effect.element);

      makeClipping(effect.element);

      makePositioned(effect.element);

    }},

    afterFinishInternal: function(effect) {

      new Effect.Parallel(

        [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, from: 0.0, transition: options.opacityTransition }),

          new Effect.Move(effect.element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }),

          new Effect.Scale(effect.element, 100, {

            scaleMode: { originalHeight: dims.height, originalWidth: dims.width }, 

            sync: true, scaleFrom: window.opera ? 1 : 0, transition: options.scaleTransition, restoreAfterFinish: true})

        ], Object.extend({

             beforeSetup: function(effect) { with(Element) {

               setStyle(effect.effects[0].element, {height: '0px'});

               show(effect.effects[0].element); }},

             afterFinishInternal: function(effect) { with(Element) {

               [undoClipping, undoPositioned].call(effect.effects[0].element); 

               setStyle(effect.effects[0].element, oldStyle); }}

           }, options)

      )

    }

  });

}



Effect.Shrink = function(element) {

  element = $(element);

  var options = Object.extend({

    direction: 'center',

    moveTransition: Effect.Transitions.sinoidal,

    scaleTransition: Effect.Transitions.sinoidal,

    opacityTransition: Effect.Transitions.none

  }, arguments[1] || {});

  var oldStyle = {

    top: element.style.top,

    left: element.style.left,

    height: element.style.height,

    width: element.style.width,

    opacity: Element.getInlineOpacity(element) };



  var dims = Element.getDimensions(element);

  var moveX, moveY;

  

  switch (options.direction) {

    case 'top-left':

      moveX = moveY = 0;

      break;

    case 'top-right':

      moveX = dims.width;

      moveY = 0;

      break;

    case 'bottom-left':

      moveX = 0;

      moveY = dims.height;

      break;

    case 'bottom-right':

      moveX = dims.width;

      moveY = dims.height;

      break;

    case 'center':  

      moveX = dims.width / 2;

      moveY = dims.height / 2;

      break;

  }

  

  return new Effect.Parallel(

    [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: options.opacityTransition }),

      new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, transition: options.scaleTransition, restoreAfterFinish: true}),

      new Effect.Move(element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition })

    ], Object.extend({            

         beforeStartInternal: function(effect) { with(Element) {

           [makePositioned, makeClipping].call(effect.effects[0].element) }},

         afterFinishInternal: function(effect) { with(Element) {

           [hide, undoClipping, undoPositioned].call(effect.effects[0].element);

           setStyle(effect.effects[0].element, oldStyle); }}

       }, options)

  );

}



Effect.Pulsate = function(element) {

  element = $(element);

  var options    = arguments[1] || {};

  var oldOpacity = Element.getInlineOpacity(element);

  var transition = options.transition || Effect.Transitions.sinoidal;

  var reverser   = function(pos){ return transition(1-Effect.Transitions.pulse(pos)) };

  reverser.bind(transition);

  return new Effect.Opacity(element, 

    Object.extend(Object.extend({  duration: 3.0, from: 0,

      afterFinishInternal: function(effect) { Element.setStyle(effect.element, {opacity: oldOpacity}); }

    }, options), {transition: reverser}));

}



Effect.Fold = function(element) {

  element = $(element);

  var oldStyle = {

    top: element.style.top,

    left: element.style.left,

    width: element.style.width,

    height: element.style.height };

  Element.makeClipping(element);

  return new Effect.Scale(element, 5, Object.extend({   

    scaleContent: false,

    scaleX: false,

    afterFinishInternal: function(effect) {

    new Effect.Scale(element, 1, { 

      scaleContent: false, 

      scaleY: false,

      afterFinishInternal: function(effect) { with(Element) {

        [hide, undoClipping].call(effect.element); 

        setStyle(effect.element, oldStyle);

      }} });

  }}, arguments[1] || {}));

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -