Giter Site home page Giter Site logo

Right to left layout about isotope HOT 5 CLOSED

metafizzy avatar metafizzy commented on July 23, 2024
Right to left layout

from isotope.

Comments (5)

TimvdEijnden avatar TimvdEijnden commented on July 23, 2024

I would appreciate it, if 'right to left' support will be added to isotope (on short term), as we are building a non for profit website which is in English and Arabic.

from isotope.

TimvdEijnden avatar TimvdEijnden commented on July 23, 2024

I've added support for isRTL to the masonry layout.

I've replaced

      // position the brick
      var x = this.masonry.columnWidth * shortCol,
          y = minimumY;

with:

      // position the brick
      var x,Y;
      if(this.options.masonry.isRTL){
        x = (this.element.outerWidth(true) - $brick.outerWidth(true)) - (this[this.options.layoutMode].columnWidth * shortCol);
      }else{
        x = this.masonry.columnWidth * shortCol;
      }
      y = minimumY;

now you need to can enable isRTL!

$('#container').isotope({
      itemSelector : '.item',
      masonry: {
        columnWidth : 10,
        isRTL: $('body').hasClass('RTL')
      }
    });

from isotope.

desandro avatar desandro commented on July 23, 2024

That's a good solution if you're just looking to add right-to-left layout for Masonry. To either create your own custom layout mode, or modify an existing layout mode like Masonry.

However, it's not a complete solution. Items will still be aligned to the left side, when you are resizing the window. A proper solution would have to be more fundamental. Ideally, you would be able to set isRTL as a base option and the script could use the same layout mode logic by revising some other logic.

This is just speculation for now.

from isotope.

desandro avatar desandro commented on July 23, 2024

Fixed by SHA: d19aba9. See Help - Right-to-left layouts and Right to left test.

from isotope.

eyalezer avatar eyalezer commented on July 23, 2024

what about this ?

    CW = $('#container').width();
    window.onresize = function() {
        CW = $('#container').width();
    }

    $.Isotope.prototype._pushPosition = function( $elem, x, y ) {   
        x = Math.round( CW - (x + this.offset.left + $elem.width() ) );
        y = Math.round( y + this.offset.top );
        var position = this.getPositionStyles( x, y );
        this.styleQueue.push({ $el: $elem, style: position });
        if ( this.options.itemPositionDataEnabled ) {
        $elem.data('isotope-item-position', {x: x, y: y} );
        }
    };  

from isotope.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.