如果一个选项设置为true,则为必填选项

时间:2016-10-12 14:28:45

标签: javascript jquery jquery-plugins

我正在构建一个jQuery插件,我想实现一个只应运行的函数,如果一个选项设置为true。默认情况下,此选项为false

如果用户想要使用该功能,则需要另一个选项,因为该功能需要页面的一个元素,该元素应该传递给所需的选项。

我怎样才能做到这一点?

修改

我仍在构建插件的主要结构,因此目前没有定义任何实际操作,但这是插件的结构。

/**
 * Parallax Plugin API
 * @type {function}
 */
(function( $, window, document, undefined ) {

  /**
   * Parallax prototype
   * defines the functionality of the plugin
   * @type {Object}
   */
  var Parallax = {

    /**
     * Initialize the parallax effect
     * @param  {string || object}   options [options passed]
     * @param  {object}             element [$('.element').parallax( options )]
     */
    init: function( options, element ) {
      var self = this;
      self.element = element;
      self.$element = $( element );

      /**
       * Define self.options by overwriting the default options by the passed ones
       * @type {object}
       */
      self.options = $.extend( {}, $.fn.parallax.options, options );

      /**
       * Call the cycle function to navigate through the API
       */
      self.cycle();
    },

    /**
     * Cycle through the API
     */
    cycle: function() {
      var self = this;

      /**
       * Listen for scroll variable changes
       * Call the refresh function, if variable has changed
       */
      events.on( 'scrollChanged', self.refresh() );
    },

    /**
     * Refresh the animation
     */
    refresh: function() {
      var self = this;

    }
  };

  /**
   * Actual plugin function which is called by .parallax()
   * @param  {string || object} options [options passed]
   * @return {object}                   [return jQuery object to allow chaining]
   */
  $.fn.parallax = function( options ) {
    return this.each(function() {
      var parallax = Object.create( Parallax );
      parallax.init( options, this );
    });
  };

  /**
   * Set the default options
   * @type {Object}
   */
  $.fn.parallax.options = {
    direction: 'up',
    initOffset: '100%',
    speed: relative,
    relativeTo: $('.element')
  };
})( jQuery, window, document );

如您所见,有一个relativeTo功能。原因是我已经构建了一个以计算速度移动parallaxing元素的功能,因此它在用户的视口中居中,与relativeTo - 元素在视口中居中的时间完全相同。

如果speed选项设置为relative,则用户必须传递元素:relativeTo,如果是另一个值(fastslow)设置为speed选项,不需要relativeTo

0 个答案:

没有答案