In this paper, we present a least significant bit (LSB) hiding scheme that can embed variable-size secrets in LSB planes using the block-based chaotic map, adaptive difference range division, pixel-value differencing and modulus function. In particular, the block-based chaotic map in our framework is used to rearrange the locations of image blocks such that the transformed image can have more complex content than the original image; more precisely, the transformed image's inter-blocks have the low correlations while its intra-blocks have the high correlations. In addition, the adaptive division for difference range and pixel-value differencing are applied to separate smooth areas from edge areas for hiding different amounts of secrets in the pixels with the modulus function. The result of the proposed scheme is that the pixels located in the inter-blocks hide more secrets to enlarge the embedding capacity, and those located in the intra-blocks have fewer embedded secrets to maintain good visual quality. The effectiveness of our scheme is provided in experiments. The experimental results demonstrate that the proposed scheme is superior to the previous methods in providing a better embedding capacity with a good visual quality of the stego-image.